2012-10-12 15 views
10

私のURLは次のようになります表示しました。間違っwp_nav_menuは

私はその後

$post_type = $_GET['post_type']; 

とポストタイプは、それが正しく

echo $post_type; 
// Provides: qa_faqs 

私はその後、$ post_typeがqa_faqsときwp_nav_menuを経由して別のメニューを表示する場合/他の操作を行うエコーます。

if ($post_type == 'qa_faqs') { 
    echo 'we got qa_faqs over here'; 
    wp_nav_menu(array('menu' => 'meta_menu', 'items_wrap' => '<dl id="%1$s" class="nice tabs vertical %2$s">%3$s</dl>', 'walker' => new sidenav_walker)); 
} else { 
    echo 'no qa_faqs in da house'; 
    wp_nav_menu(array('menu' => 'service_menu', 'items_wrap' => '<dl id="%1$s" class="nice tabs vertical %2$s">%3$s</dl>', 'walker' => new sidenav_walker)); 
} 

面白い部分へ:

ページには、「私たちはこっちqa_faqsを得た」エコーにもかかわらず、それはservice_menuが表示されます。

なぜですか?

+0

両方のメニューをロジックから取り出し、それらを外部に出力します。同じですか? – SMacFadyen

+0

それらは同じではないので、$ post_typeが 'qa_faqs'ならmeta_menu、$ post_typeが 'qa_faqs'でない場合はservice_menuを表示したいのです。 – joko13

+0

私は同じ問題(http://pastebin.com/H0GzFJz2)を持っています。トップメニューがヘッダーメニューを出力しなければならないとき、ソーシャルメニューを出力します。非常に奇妙です。 – Neros

答えて

31

からhttp://codex.wordpress.org/Navigation_Menus

同じ問題は私にナットaswellを運転していました。

'menu'の代わりに 'theme_location'を使用して、出力するメニューを指定します。

+0

これは私を助けました、ありがとう!なぜそれが働いたのか説明できますか? –

+0

それはしばらくしているので、私は正しく覚えているのか分かりませんが、 'メニュー'はあなたが使いたいメニューの名前で、 'theme_location'はそのメニューを置く場所です。 – Neros

+0

私もまた出会いましたこの問題。私は実際にそれを解決するまでに約1時間かかったと思う。 +1 – Cyclonecode

0

私はあなたがmeta_menu上の項目を持っていないと思う。 Appearanceセクションのメニューを作成して割り当ててください。 :)

+0

service_menuとmeta_menuの両方がバックエンドに正しく設定されており、他のテンプレートファイルで期待どおりに動作しています。 – joko13

3

のようなもので、特定のメニューを標的にしてみてください。

それを見つけた
<?php wp_nav_menu(array('menu' => 'Your Menu Name')); ?>