サポート » 使い方全般 » ある固定ページを、ナビゲーションメニュー非表示にしたい

  • 解決済 momo-sophia

    (@momo-sophia)


    twentyelevenをもとに、テーマをカスタマイズしています。

    header.phpにて、下記記述でナビゲーションを表示させていますが

    <?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>

    1ページだけ、メニューに表示させたくないページがあります。
    自作メニューも考えましたが、今後も固定ページが増えていく予定であり、メニューの修正もれを防ぐためにも、対象外とする方法があればと思い、ご質問させていただきます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • こんにちは

    試していませんが、

    http://wpdocs.sourceforge.jp/%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90%E3%82%BF%E3%82%B0

    を参考にして、以下のように書くといいと思います

    <?php
    if ( ! is_page( '表示しないページid' ) ) {
    
        wp_nav_menu( array( 'theme_location' => 'primary' ) );
    }
    ?>

    トピック投稿者 momo-sophia

    (@momo-sophia)

    ごめんなさい!

    メニューを表示させたくないページ、ではなく、
    メニューに表示させたくないページです。

    twentyelevenの機能なのか、固定ページを追加すると、自動でナビゲーションバーに表示されるのですが、それをやめたいのです。

    固定ページを追加すると、自動でナビゲーションバーに表示されるのですが、それをやめたいのです。

    は、メニューの トップレベルのページを自動的に追加するのチェックをはずせばいいような気もしますが、

    functions.phpに

    add_filter( 'wp_page_menu_args', 'my_exclude_menu' );
    
    function my_exclude_menu( $args ){
    
    	$args['exclude'] = 表示しないページのid;
    
    	return $args;
    }

    とすればそのページは、メニューに表示されなくなると思います。

    ( 複数の場合は、試してはいませんが、'23, 30, 32'という風にカンマ区切り文字列で 指定してみてください )

    トピック投稿者 momo-sophia

    (@momo-sophia)

    回答ありがとうございます。

    おかげさまで、期待する動きになったのですが、もしお時間あれば教えてください。

    教えていただいたコードは、wp_page_menu_argsが動くときに、my_exclude_menuを動かして、メニューの配列から指定したidを除外する、という理解で正しいですか?
    wp_page_menu_argsは、どんなタイミングで動くのでしょうか?

    教えていただいたコードは、wp_page_menu_argsが動くときに、my_exclude_menuを動かして、メニューの配列から指定したidを除外する、という理解で正しいですか?

    で、いいと思います。

    wp_page_menu_args フィルタは、

    wp_page_menu(),wp_nav_menu()などで使われていますので、wp-includes/post_template.php,
    wp-includes/nav-menu-template.php を読んでみてください。

    wp_page_menu()は、args fallback_cbのデフォルト関数です

    トピック投稿者 momo-sophia

    (@momo-sophia)

    丁寧にありがとうございました。
    フィルタがよくわからなかったので、確認していたのでお礼が遅くなり申し訳ありません。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「ある固定ページを、ナビゲーションメニュー非表示にしたい」には新たに返信することはできません。