WordPressのget_template_part:コンテンツエラーの問題を解決する

ある ワードプレスのテーマ開発プロセス。get_template_part() は、テンプレート・ファイルを分割して再利用するために非常によく使われる関数です。しかし、多くの開発者は 未定義の関数content()の呼び出し エラーが発生します。この種のエラーは通常WordPressのバグではなく、テンプレートの構造や命名規則に問題があります。

图片[1]-WordPress get_template_part 用法详解:解决 content 报错问题

get_template_part() とは?

get_template_part() はWordPressが推奨するテンプレートの分割方法で、コードを重複させることなく指定したテンプレートセクションを呼び出します。コンテンツエリアの読み込みによく使われます、フッターそしてフッターそしてサイドバーその他

最も一般的な書き方だ:

get_template_part( 'template-parts/content', get_post_type() );

このコードが行っているのは、現在の記事タイプに基づいて、次のような投稿を動的にロードすることだ。 テンプレート・パーツ/コンテンツ・ポスト.php もしかしたら テンプレート・パーツ/コンテンツ・ページ.php ドキュメンテーション

content()エラーの原因は何ですか?

エラーの報告は一般的に次のようになる:致命的なエラー:捕捉されないエラー:未定義の関数content()への呼び出し

ほとんどの場合、それはない get_template_part() 自分自身に問題がある。 コンテンツ.php ファイルに直接書かれている <?php content(); ?>しかし コンテンツ() この機能は存在しない。

ワードプレス ごかんけいせいぼおん真ん中。コンテンツ.php は "コンテンツ・テンプレート "であり、"コンテンツ・テンプレート "を呼び出すことはない。 コンテンツ() 関数です。

正しい構造はどうあるべきか?

組織としては、以下のような構成が推奨される。テンプレートドキュメンテーション

マスターテンプレートファイル:index.php もしかしたら アーカイブ

图片[2]-WordPress get_template_part 用法详解:解决 content 报错问题
<?php
while ( have_posts() ) : the_post();
  get_template_part( 'template-parts/content', get_post_type() );
endwhile;
?>

コンテンツテンプレートファイル:例 テンプレート・パーツ/コンテンツ・ポスト.php

<article id="post-<?php the_ID(); ?>" no numeric noise key 1002>
  <header class="entry-header">
    <h2 class="entry-title"><?php the_title(); ?></h2>
  </header>

  <div class="entry-content">
    <?php the_content(); ?>
  </div>
</article>
图片[3]-WordPress get_template_part 用法详解:解决 content 报错问题

要はそういうことだ:これらのテンプレートには書き込まないでください。 コンテンツ()なぜなら ワードプレス そんな機能はない。

テンプレート構造の命名に関する提案

  • コンテンツ.phpデフォルトのコンテンツテンプレート
  • コンテンツ投稿.php記事タイプのテンプレート
  • コンテンツページ.phpページタイプのテンプレート
  • コンテンツ製品.phpWooCommerce 商品テンプレート

WordPressはサフィックスが付いたバージョンを最初に読み込み、存在しない場合は コンテンツ.php.

変数を渡したい場合は?

get_template_part() デフォルトでは、直接値を渡すことはサポートされていません。値を渡したい場合は、以下の新しいメソッドを使用できます(WordPress 5.5以上):

get_template_part( 'template-parts/content', 'custom', array( 'custom_class' => 'highlight' ) );

それをテンプレートで受け取る:

<div class="<?php echo esc_attr( $args['custom_class'] ?? '' ); ?>">
  ...
</div>

短い

利用する get_template_part() その際には、次のことを思い出してほしい:

  • ファイル名は content-xxx.phpを呼び出す代わりに コンテンツ() 関数
  • 関数を定義する代わりに、ファイルに構造体を直接記述する。
  • テンプレート階層に従って命名すると、WordPressは自動的に
  • ワードプレス 5.5以降では 1TP4タルグ パラメータ受け渡し、より柔軟に

これにより、エラー報告の問題が解決されるだけでなく、テーマコードがより明確でモジュール化されます。

最近の更新


お問い合わせ
チュートリアルが読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ!
客服微信
カスタマーサービス WeChat
電話:020-2206-9892
QQ咨询:1025174874
Eメール:[email protected]
勤務時間: 月~金、9:30~18:30、祝日休み
© 複製に関する声明
本文作者:托尼屎大颗
終わり
好きなら応援してください。
クドス1284 分かち合う
解説 ソファ購入

コメントを投稿するにはログインしてください

    コメントなし