サポート » 使い方全般 » カスタムメニューのテーマの位置を設定するとメニューが消える

  • オリジナルテーマでのカスタムメニュー実装についての質問です。
    よろしくお願いいたします。

    まず製作中のテーマがこちらになります。
    http://healer.lognote.biz/

    トップのサイト名の右に本来ならメニューが表示されるはずなのですが、これが表示されません。

    functions.phpには
    register_nav_menu( ‘main-menu’, ‘サイトナビゲーション’ );

    メニュー表示部分に
    <?php wp_nav_menu( ‘theme_location’ => ‘main-menu’ ); ?>

    このように書いています。

    カスタムメニュー設定画面の「テーマの位置」のチェックを外すと公開中の固定ページが全て表示され、「テーマの位置」のチェックをつけるとメニューが表示されなくなります。

    カスタムメニュー機能がそもそも効いていないのはわかっているのですが、なぜなのかわかりません。

    カスタムメニューはカテゴリーだけ反応し、表示できます。そのほかカスタム投稿、固定ページ、投稿ページなどのリンクは全てカスタムメニューに入れても表示されません。

    ちなみにほかの公式テーマなどに変更すると機能します。

    ちょっと説明がへたかもしれませんが、原因がお分かりの方いらっしゃいましたらご教授お願いいたします。

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

    <?php wp_nav_menu( 'theme_location' => 'main-menu' ); ?>

    の引数は、配列なので

    wp_nav_menu( array('theme_location'=>'main-menu', 'fallback_cb' => '') );

    のようになります。(未テスト)

    'fallback_cb' => ''は、「固定ページが全て表示されることがなくなる引数です」

    必要に応じて調整してみてください。

    トピック投稿者 Tatsuya Yamakawa

    (@yully)

    ありがとうございます! なるほど配列なのですね。

    そして無事表示されました!

    ご指摘の部分でもミスしていたのですが、以下のようなカスタムメニューのカテゴリー投稿数を表示するコードを記入していたのを消したら表示されました。

    //カスタムメニュー(カテゴリー)の投稿数表示
    add_filter('wp_nav_menu_objects','my_nav_count');
    function my_nav_count($items){
    	foreach ($items as $item){
    		if($item->object == 'category'){
    			$item->title .= " (". get_term($item->object_id,'category')->count .")";
    			$args[] = $item;
    		}
    	}
    	return $args;
    }

    ありがとうございました。〆させていただきます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタムメニューのテーマの位置を設定するとメニューが消える」には新たに返信することはできません。