2012-10-12 109 views
10

我的網址是這樣的: http://domain.com/?s=searchquery&post_type=qa_faqs錯wp_nav_menu顯示

該頁面列出搜索結果的「SEARCHQUERY」。

然後,我

$post_type = $_GET['post_type']; 

得到這個職位類型它正確地呼應

echo $post_type; 
// Provides: qa_faqs 

然後我做一個的if/else顯示經由wp_nav_menu不同的菜單時$ post_type是qa_faqs。

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

他們不一樣,這就是爲什麼我要顯示meta_menu,如果$ post_type是'qa_faqs',service_menu如果$ post_type不是'qa_faqs'。 – joko13

+0

我有同樣的問題(http://pastebin.com/H0GzFJz2),他們都輸出社交菜單,當頂部應該輸出標題菜單,很奇怪。 – Neros

回答

31

找到它 - http://codex.wordpress.org/Navigation_Menus

同樣的問題是駕駛我堅果以及。

使用'theme_location'而不是'menu'來指向要輸出的菜單。

+0

這幫了我,謝謝!你能解釋它爲什麼起作用嗎? –

+0

已經有一段時間了,所以我不知道如果我沒有記錯,但我認爲'菜單'是你想要使用的菜單的名稱,'theme_location'是你想要放置該菜單的地方 – Neros

+0

我也偶然發現這個問題。我認爲在我真正解決它之前花了大約1個小時。 +1 – Cyclonecode

0

我想你沒有meta_menu上的任何項目。請在外觀部分下創建菜單並分配它。 :)

+0

service_menu和meta_menu都在後端正確設置,並在其他模板文件中按預期工作。 – joko13

3

嘗試的東西,如靶向特定菜單:

<?php wp_nav_menu(array('menu' => 'Your Menu Name')); ?>