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

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

畫像[1]-WordPress get_template_part使い方解説:コンテンツエラー報告の問題を解決するために

get_template_part() とは?

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

最も一般的な書き方だ:

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

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

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

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

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

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

正しい構(gòu)造はどうあるべきか?

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

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

畫像[2]-WordPress get_template_partの使い方解説:コンテンツエラー報告の問題を解決するために
<?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使い方解説:コンテンツエラーの問題を解決する!

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

テンプレート構(gòu)造の命名に関する提案

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

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

変數(shù)を渡したい場合は?

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を呼び出す代わりに コンテンツ() 関數(shù)
  • 関數(shù)を定義する代わりに、ファイルに構(gòu)造體を直接記述する。
  • テンプレート階層に従って命名すると、WordPressは自動的に
  • ワードプレス 5.5以降では 1TP4タルグ パラメータ受け渡し、より柔軟に

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

最近の更新


お問い合わせ
チュートリアルが読めない?無料でお答えします!個人サイト、中小企業(yè)サイトのための無料ヘルプ!
カスタマーサービス WeChat
カスタマーサービス WeChat
電話:020-2206-9892
QQ咨詢:1025174874
Eメール:info@361sale.com
勤務(wù)時間: 月~金、9:30~18:30、祝日休み
? 複製に関する聲明
この記事はリトル?リンが執(zhí)筆した。
終わり
好きなら応援してください。
クドス1284 分かち合う
解説 ソファ購入

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

    コメントなし