簡體   English   中英

不同頁面的WordPress自定義菜單

[英]wordpress custom menu for different page

我正在嘗試在目標網頁上使用自定義菜單。

我使用以下代碼:

<?php
function change_wp_nav_menu_args($args = ''){
    $pageID = get_the_id();
    if($pageID == '63') //custom menu for site with id 63
    {
        $args['menu'] = 'homepage';
    }
    return $args;
}
add_filter( 'wp_nav_menu_args', 'change_wp_nav_menu_args' );
?>

它工作正常,但不僅主菜單發生了變化。 頁腳菜單也會更改。 但是頁腳菜單在每個頁面上都應該相同。

我該如何影響?

這段代碼解決了我的問題:

<?php
        add_filter( 'wp_nav_menu_args', 'bb_wp_nav_menu_args' );
            function bb_wp_nav_menu_args( $args = '' ) {
                // change the menu in the Header menu position
                if( $args['theme_location'] == 'primary' && is_page('63') ) { 
                    $args['menu'] = '6'; // 32 is the ID of the menu we want to use here
                }
                return $args;
            }
    ?>

很高興找到答案,但是建議您使代碼動態化,而不是將菜單值設置為靜態[ $ args ['menu'] ='6' ]。

建議:

為帶有標簽菜單的頁面創建一個元框[帶菜單列表的下拉列表]。 並使用wp_nav_menu的菜單ID。

對於下拉[列表菜單]

function your_menus()
{
    $menu_arr=NULL;
    $menus=get_terms( 'nav_menu', array( 'hide_empty' => true ) );
    $menu_arr['your-nomenu']='Default';
    foreach ( $menus as $menu ){
        $menu_arr[$menu->slug]=$menu->name;
    }
    return $menu_arr;
}//end of function

對於導航菜單:[_your_page_menu:元名稱]。 您可以將代碼放置在函數中並在Header中調用它,也可以將代碼直接放置在標題中。

     $page_menu_name=get_post_meta(get_the_ID(),'_your_page_menu',true)==''?'your-nomenu':get_post_meta(get_the_ID(),'_your_page_menu',true);
                if($page_menu_name==='your-nomenu')
                {
                    wp_nav_menu(array('theme_location'  => 'primary','menu_id'=> 'main-menu','container'=>false,'fallback_cb'=>'','menu_class'=>'main-navigation'));
                }
                else
                {
                    wp_nav_menu(array('menu_id'=> 'main-menu' , 'container'=>false, 'menu'=>$page_

menu_name,'fallback_cb'=>'','menu_class'=>'main-navigation'));
            }

希望對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM