私はWordPressの静的フロントページプロセスを使用してフロントページを割り当て、投稿ページを割り当てます。だから私は2つのページがあります: "front"(front-page.php)と "blog"(home.php)です。
"blog"ページの場合、(ループの外側で)head initの後に$post->ID
を表示すると、WordPressが最後に作成した投稿IDを送り返す理由がわかりません。通常はページIDを表示する必要がありますか?
私はこの種の事件と使用する能力について「あなたの答えをすでに持っているかもしれない質問」を読みました:
get_option('page_for_posts')
しかし、なぜWordpressがこのように機能するのでしょうか。
グローバル変数が定義されていますか?
WordPressテンプレート階層に足りないものはありますか?
ご協力いただきありがとうございます
$ postオブジェクトには、現在のページのメインクエリのデータが含まれています。だからあなたの場合あなたのfront.page.phpのメインクエリーはあなたがあなたのフロントページになるようにあなたが割り当てるページからのデータを含んでいます。ブログページはアーカイブですが、複数の投稿データを含めることができます。どちらの場合も、このデータにアクセスするためにループを使用します。
多分このページはもう少し説明するのを助けるでしょう:
https://developer.wordpress.org/themes/basics/the-loop/
編集:
さて、私はあなたが必要としているものがget_queried_object()
であると思います。これはフロントページまたはブログにあるときにPage IDを返すでしょう。 $post
オブジェクトには、ループの最初の投稿のデータが含まれています。ブログページはページではなくアーカイブとして考える必要があります。