web-dev-qa-db-ja.com

現在の投稿の親ページ/メニューIDを取得

基本的に、Reading Optionsで最初の "post for page"を設定し、そしてそのページをメニューに追加した後、期待通りにそのメニュー項目をクリックした時に投稿を得ます。

そこには、投稿ID(投稿のページとして設定する前に作成された実際のページ)と、その同じページに関するすべての情報がわかります。

問題は、特定の投稿をクリックしたときに、メニュー項目のアクティブステータスが失われるだけでなく、その親ページIDを取得できないことです。

投稿時にその親ページIDを取得する方法はありますか。

編集:参考のために、私はget_option('page_for_posts');でそれを手に入れましたが、それは非常に醜いです。投稿がその親ページのインデックスに関連付けられているのではないでしょうか。

1
eduardev

私はあなたが欲しいと思います 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
1
s_ha_dum

ループの前のglobal $postはどうですか?

0