私の投稿アーカイブページでは、ループの外側で、get_the_id()が最上位の投稿のIDを返します
1 回答
- 投票
それを理解しました.is_home()
を使用して、投稿がアーカイブページであるかどうかを検出します.関数はホームページかどうかを判断することだといつも思っていたので、直感に反します.そのためのis_front_page()
があることがわかりました.
Figured it out. use is_home()
to detect if its the posts archive page. kind of counter-intuitive because i always thought that function was to determine if it's the homepage, found out there's a is_front_page()
for that.
投稿アーカイブページのIDを取得しようとしています. 管理者を介して投稿ページとして設定されているため、すでにデフォルトのクエリがあります.私が使用しているテンプレートは
index.php
で、page-blog.php
を使用してみましたが、そのページを投稿アーカイブとして設定したため、index.php
(これによって一種の見捨てられました)echo get_the_id()
は、ページIDではなく、一番上のブログ投稿のID(この場合はスティッキー)を返します.私はループの外にいます.ここにも同様の質問があります:投稿/ブログページのID
ただし、目的は少し異なり、代わりに
get_option('page_for_posts')
を使用して投稿アーカイブIDを取得するという解決策があります.投稿アーカイブページにいるかどうかを検出する方法が必要です.使用してみました:
しかし、グローバルな
$post
オブジェクトがアーカイブページではなくスティッキー投稿を参照しているように見えるため、これは機能しませんでした私が見つけた回答は回避策のようですが、
$post
の失敗という根本的な問題には対処していません.私が見逃している、または別の方法でやるべきことがありますか?自分のホームページではなく、自分の投稿アーカイブページが明示的に必要です.