基本的に、Reading Optionsで最初の "post for page"を設定し、そしてそのページをメニューに追加した後、期待通りにそのメニュー項目をクリックした時に投稿を得ます。
そこには、投稿ID(投稿のページとして設定する前に作成された実際のページ)と、その同じページに関するすべての情報がわかります。
問題は、特定の投稿をクリックしたときに、メニュー項目のアクティブステータスが失われるだけでなく、その親ページIDを取得できないことです。
投稿時にその親ページIDを取得する方法はありますか。
編集:参考のために、私はget_option('page_for_posts');
でそれを手に入れましたが、それは非常に醜いです。投稿がその親ページのインデックスに関連付けられているのではないでしょうか。
私はあなたが欲しいと思います get_queried_object
。静的なフロントページとブログページをwp-admin->Settings->Reading
から設定した場合、get_queried_object
はループ内の投稿ではなく選択したページに関する情報を提供します。
get_queried_object
は、あなたがいるページの種類によって非常に異なる種類の情報を返すことに注意してください。コーデックスから:
- 単一の投稿の場合は、投稿オブジェクトが返されます
- あなたがページ上にいる場合、それはページオブジェクトを返します
- あなたがカテゴリアーカイブにいるなら、それはカテゴリオブジェクトを返します
等.
http://codex.wordpress.org/Function_Reference/get_queried_object
あなたの投稿ページではWP_Postオブジェクトであるべきです
$thispage = get_queried_object();
var_dump($thispage); // WP_Post object
ループの前のglobal $post
はどうですか?