固定ページをTAG対応にしたとき、wp_nav_menuがfalseを返す
-
お世話になっております。
Twenty Eleven 1.4
Twenty Eleven 1.5
での事象です。固定ページでもタグを使いたいな、と思い、
テーマの function.php に以下のコードを追加しました。function add_tag_to_page() { register_taxonomy_for_object_type('post_tag', 'page'); } add_action('init', 'add_tag_to_page'); function add_page_to_tag_archive( $query ) { if ( is_tag() ) { $query->set('post_type', array( 'post', 'page' )); } return $query; } add_action( 'pre_get_posts', 'add_page_to_tag_archive' );
すると、タグアーカイブページの表示(tag.php)で
メニューが表示されません。header.phpの
wp_nav_menu( array( 'theme_location' => 'primary' ) )
;
がfalseを返しているようです。初心者で大変申し訳ございませんが、
原因や修正方法などございましたら、何卒よろ引くお願いいたします。
-
お世話になっています。
add_page_to_tag_archiveアクションの目的は、何ですか?
タグアーカイブページにおいて、
「投稿」「固定ページ」の区別なく、該当タグが付けられた記事をリストするためのもの
と認識しております。
一覧の表示自体は、問題なく表示されています。何卒よろしくお願いいたします。
タグアーカイブページにおいて、
「投稿」「固定ページ」の区別なく、該当タグが付けられた記事をリストするためのもの
と認識しております。
一覧の表示自体は、問題なく表示されています。以下のように、pre_get_postsアクションフックをはずして、何か問題が出ますか?
//add_action( 'pre_get_posts', 'add_page_to_tag_archive' );
投稿タイプは標準で、post,page,attachment,revision,nav_menu_itemがあります。
私には、nav_menu_item 投稿タイプを制限しているように見えるのですが、
追記:私がアホでした。
function add_page_to_tag_archive( $query ) { if ( is_tag() ) { $query->set('post_type', array( 'post', 'page','nav_menu_item' )); } return $query; } add_action( 'pre_get_posts', 'add_page_to_tag_archive' );
でどうですか?
私の方では、カスタムメニューが、フォールバックのページリストを表示している時は、メニューが表示できて、カスタムメニューを設定した時には、表示できなくなるようでした。
is_main_query() がないと色々と副作用を起こします。また、この場合 return 文はいらないのでは?
function add_page_to_tag_archive( $query ) { if ( is_tag() && $query->is_main_query() ) { $query->set('post_type', array( 'post', 'page' )); } } add_action( 'pre_get_posts', 'add_page_to_tag_archive' );
お世話になっています。
nobita様
‘nav_menu_item’を追加することで表示することができました。
ありがとうございます。pluto1234様
$query->is_main_query()
コレも効きましたそれぞれの意味は、またソースコードを読み解いていくとして
2つをガッチャンコして以下のようにしました。function add_page_to_tag_archive( $query ) { if ( is_tag() && $query->is_main_query() ) { $query->set('post_type', array( 'post', 'page', 'nav_menu_item')); } } add_action( 'pre_get_posts', 'add_page_to_tag_archive' );
ありがとうございました。
とても助かりました。
- トピック「固定ページをTAG対応にしたとき、wp_nav_menuがfalseを返す」には新たに返信することはできません。