首先,我想告诉你,我对开发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菜单。再次感谢!
最合适的回答,由SO网友:Dave Romsey 整理而成
此代码将进行检查,以确保theme_location
是header
. 而且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;
}