编辑/删除分区中的二级菜单

时间:2015-07-27 作者:Akash kapur

我使用的是Divi by ET。我用以下代码创建了一个自定义插件,为登录和注销的用户启用单独的菜单。

function my_wp_nav_menu_args( Array $args = [] )
{
    if ( is_user_logged_in() )
        $args[\'menu\'] = \'logged-in\';
    else
        $args[\'menu\'] = \'logged-out\';

    return $args;
}

add_filter( \'wp_nav_menu_args\', \'my_wp_nav_menu_args\' );
问题是Divi现在将此自定义菜单设置应用于所有菜单。我一直在尝试禁用或至少修改次要标题,但无法做到这一点。

如果未选择任何选项,则默认情况下不会显示页脚菜单,但如果我选择了任何选项,则插件将覆盖该设置并仅显示“登录”/“注销”菜单。

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

请注意,针对第三方主题的特定支持问题是离题的,因此我将以一般方式处理这一问题,您应该能够在当前主题中实现这一点

要使代码只在一个菜单上工作,您需要只针对该特定菜单。为此,您需要检查当前菜单项的位置,如果它与给定值匹配,则进行更改。主题花边存储为$args[\'theme_location\']

您可以尝试以下操作:(只需获得正确的菜单,并在下面的代码中进行相应的更改)

add_filter( \'wp_nav_menu_args\', \'my_wp_nav_menu_args\', 999 );
function my_wp_nav_menu_args( $args )
{
    if ( \'MENU LOCATION\' == $args[\'theme_location\'] ) {
        if( is_user_logged_in() ) { 
            $args[\'menu\'] = \'logged-in\';
        } else {
            $args[\'menu\'] = \'logged-out\';
        }
    }
    return $args;
}

结束

相关推荐

Wordpress Flyout Menus

我有一个有点复杂的菜单结构,我正试图找出最好的方法来做到这一点。I have a top nav 它有4个部分。每个部分最多有2层深。而且I have a SUB Nav 这是基于您所在的部分,并显示为向下钻取,显示您拥有的页面。例如,假设我单击第二级顶部导航-然后我将转到显示打开并选中该部分的子页面。我希望我的解释是正确的。。。谢谢我的问题是:最好的方法是什么。我研究了一些插件,但似乎找不到合适的插件。我不需要使用插件。