按帖子和类别显示导航标题菜单

时间:2016-10-03 作者:mirind4

首先,我想告诉你,我对开发wordpress这个话题有点陌生。另一方面,我发现它非常强大,我们可以“编码”我们的wordpress网站!

我的问题如下:我想按帖子或类别更改(替换)我的主导航菜单。因为如果我点击某个类别的帖子,我的导航菜单将转到我不想要的标准菜单。我试图通过互联网和这里寻找一些解决方案,但不幸的是,我找不到任何解决方案。然后我想到了以下想法:如果我在函数中更改我的菜单参数会怎么样。php?我在函数中编写的代码片段。php如下所示:

add_filter( \'wp_nav_menu_args\', \'bb_wp_nav_menu_args\' );

function bb_wp_nav_menu_args( $args = \'\' ) {
    if( is_single(\'123\') ) { 
        $args[\'menu_id\'] = \'12\'; 
    }
    if( is_single(\'116\') ) { 
        $args[\'menu_id\'] = \'12\';
    } 
    if( is_category(\'15\') ) { 
        $args[\'menu_id\'] = \'12\'; 
    } 
    return $args;
}
这里的123和116是帖子的ID。当然,数字15是。。。但不幸的是,它不起作用。你的意见是什么?问题出在哪里?你能在这件事上帮助我吗?提前谢谢,如果我的问题很生疏,我很抱歉!

编辑:我想添加一些额外的信息,因为这些可能是相关的:我正在使用Hueman主题,我想更改标题菜单而不是topbar菜单。再次感谢!

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

此代码将进行检查,以确保theme_locationheader. 而且menu 指定所需WordPress Nav菜单的参数。menu_id 是应用于<ul> 构成菜单的元素。关于的参数的文档wp_nav_menu() 可以找到here.

add_filter( \'wp_nav_menu_args\', \'bb_wp_nav_menu_args\' );
function bb_wp_nav_menu_args( $args ) {

    if ( \'header\' !== $args[\'theme_location\'] ) {
        return $args;
    }

    if ( is_single( \'123\' ) ) {
        $args[\'menu\'] = \'12\'; // Replace with desired menu ID, slug, or name 
    } else if ( is_single( \'116\' ) ) {
        $args[\'menu\'] = \'12\'; // Replace with desired menu ID, slug, or name  
    } else if ( is_category( \'15\' ) ) {
        $args[\'menu\'] = \'12\'; // Replace with desired menu ID, slug, or name  
    }

    return $args;
}

相关推荐

无法将设置添加到“NAV_MENUS”定制器面板

我试图在自定义程序的“菜单”面板中添加一个复选框,但由于某些原因,它没有显示出来。如果我尝试将其从“nav\\u菜单”更改为“title\\u tagline”或“colors”,复选框会显示得很好。是什么阻止它显示在“菜单”面板上?// add custom options to the Customizer function nssra_customizer_options($wp_customize) { // add \"menu primary flex\" checkb