2017-12-27 462 views
1

我真的是新的WordPress的。我有一個自定義菜單,當用戶瀏覽器登錄特定頁面時,我只想顯示特定的菜單項。如何顯示特定的CSS樣式wp_nav_menu()

wp_nav_menu(陣列( 'theme_location'=> '菜單主'));

有沒有辦法有wp_nav_menu()掛鉤,只顯示具有特定CSS類項目的具體菜單項?

+0

沒有,沒有。然而,研究'wp_nav_menu' - 你會看到你可以*顯示多個菜單,這取決於你在哪個頁面上,此外,你可以「過濾」菜單,所以使用自定義代碼,你可以構建一個過濾器,用於限制在特定情況下顯示哪些菜單項。 –

回答

0

考慮在編寫自定義函數之前搜索現有的插件。爲了您的特定功能,我會使用Page Specific Menu Items插件。

如果你想添加到現有的功能,可以考慮使用body_class過濾器。有了這個功能,你可以在你的body元素中添加一個css類,然後編寫css來改變你的菜單在任何特定頁面上的顯示方式。

1

如果我很好地理解你的問題,是的,有一種方法。你可以使用條件。 PHP if語句。 WordPress允許你查看頁面的標題,ID,類別在執行命令之前如

if(is_page(array('about-us', 'contact', 'management')) { 

    //either in about us, or contact, or management page is in view 
    //execute something 

} else { 

    //none of the page about us, contact or management is in view 
    //execute something 

} 

而且你可以在類/ ID添加到wp_nav_menu

所以連接這兩個想法,你可以有:

// When Page 42 (ID) is being displayed. 
if (is_page(42)) { 

    wp_nav_menu(array('menu_id' => 'pines', 'menu_class' => 'pnav')); 

} elseif(is_page(array('about-us', 'contact', 'management')) { 

    wp_nav_menu(array('menu_id' => 'bananas', 'menu_class' => 'nav')); 

} else { 

    wp_nav_menu(array('menu_id' => 'main-id', 'menu_class' => 'main-nav')); 

} 

添加了唯一的ID和類後,您可以按照自己想要的方式設置它。 參考https://codex.wordpress.org/Conditional_Tags