web-dev-qa-db-ja.com

タイトル();ループの外側のページテンプレートで機能します。どうして?

ループの概念に頭を包み込もうとしています...

このコードだけのテンプレートページ(page-work.php)があるとします。

<?php the_title(); ?>

WPはそのページのタイトルを正しく表示します。私が理解しているように、これはどんなループの外にもあり、動作するべきではありません(Codexはそのような場合にはget_the_titleを使うと言います)。

問題は、なぜそれが機能するのかということです。

おかしなことに、これはtitle + contentを出力せず、単にtitleを出力します。

<?php the_title(); the_content(); ?>

ありがとうございます。

3
MrMerrick

グローバルな$postオブジェクトは、wp_headが呼び出される前に既に単数形ビュー用に存在しています。すべてのデータでいっぱいになるわけではありません。

the_title()get_the_title()を呼び出し、次にget_post()が呼び出されます。投稿IDが渡されていない場合は that $GLOBALS['post']を呼び出します。

ユースケースについては、 テーマでのogpタグの生成 も参照してください。

2
fuxia