如何在两个主菜单之间切换(编程方式为0

时间:2019-08-14 作者:noobron

我有两个菜单,即:“导航菜单”和“用户菜单”。每当我访问特定页面时,我只想在两个菜单之间切换(或切换)到一个特定的菜单,作为主菜单。

例如:如果我转到某个特定页面,我的菜单会按程序切换到“用户菜单”。

我去过How to switch between the Primary Menus programmatically?. 然而,我仍然无法理解。

有人能帮我简要解释一下代码吗?

2 个回复
SO网友:Manyang

您可以在特定页面模板中尝试此代码

function change_primary_menu( $menu ) {
        // you can check spesific menu id using this print and after that assign in,
        // and you can also check menu location using this print too
    echo \'<pre>\';
    print_r($menu) ;
        echo \'</pre>\';

        $user = wp_get_current_user();
        //in this example im check the user role is \'user\'
        if ( in_array( \'user\', (array) $user->roles ) ) {
            //if yes change to user menu (19 and 21 is just example menu id)
            $menu[\'primary\'] = 19;
        }else{
            //if not change to another menu
            $menu[\'primary\'] = 21;
        }
    return $menu;
};

add_filter( \'theme_mod_nav_menu_locations\', \'change_primary_menu\', 10, 2 );

SO网友:noobron

我已经解决了!我使用“wp\\u nav\\u menu\\u items”挂钩自定义菜单的链接。然而,它实际上并没有具体回答我的问题,但它解决了我的问题。以下是“简介”页面的示例:-

add_filter( \'wp_nav_menu_items\', \'set_profile_links\', 10, 2 );
function set_profile_links( $items, $args ) {
    $items = \'<li ><a href="http://localhost/wordpress/index.php/dashboard">Dashboard</a></li>\';
    $items .= \'<li id="current-page-menu"><a href="http://localhost/wordpress/index.php/my-account">PROFILE</a></li>\';
    return $items;
}