php - 向 WP Genesis 菜单添加类,不包括其他菜单
问题描述
我们正在使用 WordPress 的 Genesis 主题,并希望在菜单中添加一些类。我们在网上做了一些搜索,找到了这段代码:
// Add a CSS class to a menu or menu item in WordPress
function modify_nav_menu_args( $args) {
$args['menu_class'] .= ' genesis-nav-menu js-superfish sf-js-enabled sf-arrows';
return $args;
}
add_filter( 'wp_nav_menu_args', 'modify_nav_menu_args' );
效果很好,唯一的问题是我们在页脚中也有一个菜单,这个菜单正在获取这些类。
我们没有使用“次要”菜单的“主要”来加载菜单,但我们通过小部件来完成。
如何使用上述函数并向其添加 if 语句,表示我只想将此 css 添加到名称为“主菜单”且 ID 为“11”的菜单中。如果不是“主菜单”,或者如果您想通过 ID“11”进行操作,则添加其他类。
我已经找到了这样的东西:
function modify_nav_menu_args( $args ) {
if( 'primary' == $args['theme_location'] ) {
$args['menu_class'] .= ' special-class';
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'modify_nav_menu_args' );
但是你使用了theme_location的“primary”,而我们没有使用“primary”或“secondary”。
有人可以帮助我如何使用菜单名称或 ID 做到这一点?
var_dump $args
array(17) { ["menu"]=> object(WP_Term)#21050 (11) { ["term_id"]=> int(11) ["name"]=> string(9) "main menu" ["slug"]=> string(9) "main-menu" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(11) ["taxonomy"]=> string(8) "nav_menu" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(28) ["filter"]=> string(3) "raw" ["meta"]=> array(0) { } } ["container"]=> string(3) "div" ["container_class"]=> string(0) "" ["container_id"]=> string(0) "" ["menu_class"]=> string(4) "menu" ["menu_id"]=> string(0) "" ["echo"]=> bool(true) ["fallback_cb"]=> string(0) "" ["before"]=> string(0) "" ["after"]=> string(0) "" ["link_before"]=> string(0) "" ["link_after"]=> string(0) "" ["items_wrap"]=> string(36) "
%3$s
" ["item_spacing"]=> string(8) "preserve" ["depth"]=> int(0) ["walker"]=> string(0) "" ["theme_location"]=> string(0) "" }
解决方案
$args
变量应该已经有你需要的了。
function modify_nav_menu_args( $args ) {
if ($args['menu'] instanceof WP_Term && 'main-menu' == $args['menu']->slug) {
$args['menu_class'] .= ' genesis-nav-menu js-superfish sf-js-enabled sf-arrows';
}
return $args;
}
推荐阅读
- python - 在opencv中实现svm对皮肤癌数据进行分类
- javascript - 与 JS ES6 中的承诺或事件的概念混淆
- python - 运行 shell 脚本命令 rom python 时出错
- python - IndexError:列表分配索引超出范围(Matplotlib)
- python - 无法使用用户个人资料注册用户
- c++ - 与显示警告的 string.size() 比较时 int 的签名
- android-youtube-api - 使用 YouTube Android Player API 时的数据隐私
- batch-file - 将特定文件类型移动到子文件夹中的批处理文件
- javascript - Javascript,更改对象值然后调用 Object.keys( ).forEach 中的函数
- asp.net - ASP.NET CORE MVC - 将相同的操作重定向到视图中的另一个控制器