web-dev-qa-db-ja.com

WordPressのブログページのしくみ:ブログページは最初の投稿IDを取得します

私はWordPressの静的フロントページプロセスを使用してフロントページを割り当て、投稿ページを割り当てます。だから私は2つのページがあります: "front"(front-page.php)と "blog"(home.php)です。

"blog"ページの場合、(ループの外側で)head initの後に$post->IDを表示すると、WordPressが最後に作成した投稿IDを送り返す理由がわかりません。通常はページIDを表示する必要がありますか?

私はこの種の事件と使用する能力について「あなたの答えをすでに持っているかもしれない質問」を読みました:

get_option('page_for_posts')
  • しかし、なぜWordpressがこのように機能するのでしょうか。

  • グローバル変数が定義されていますか?

  • WordPressテンプレート階層に足りないものはありますか?

ご協力いただきありがとうございます

1
Didav

$ postオブジェクトには、現在のページのメインクエリのデータが含まれています。だからあなたの場合あなたのfront.page.phpのメインクエリーはあなたがあなたのフロントページになるようにあなたが割り当てるページからのデータを含んでいます。ブログページはアーカイブですが、複数の投稿データを含めることができます。どちらの場合も、このデータにアクセスするためにループを使用します。

多分このページはもう少し説明するのを助けるでしょう:

https://developer.wordpress.org/themes/basics/the-loop/

編集:

さて、私はあなたが必要としているものがget_queried_object()であると思います。これはフロントページまたはブログにあるときにPage IDを返すでしょう。 $postオブジェクトには、ループの最初の投稿のデータが含まれています。ブログページはページではなくアーカイブとして考える必要があります。

1
ngearing