wordpress - 将“活动”类添加到 wordpress 中的当前后祖先菜单项父级
问题描述
我在wordpress中有这样的菜单
- 父项(A 页)
- 子项(A 类)
当我在子项(类别)页面中将“current-menu-parent”类添加到“父项”中时,这非常有用。但是当我查看来自子项(类别)的帖子之一时,没有特殊类被添加到“父项”中。只有“current-post-ancestor”类被添加到子项(类别)中。当我查看来自子项(类别) 的帖子时,如何将类添加到“父项” ?
注意:我想要一个 PHP 解决方案,不接受 Javascript/Jquery 解决方案。
更新 :
这就是我到目前为止所拥有的。但它正在为所有具有子项的父项添加类。
add_filter( 'wp_nav_menu_objects', 'add_menu_parent_class' );
function add_menu_parent_class( $items ) {
$parents = array();
foreach ( $items as $item ) {
if ( $item->menu_item_parent && $item->current_item_ancestor) {
$parents[] = $item->menu_item_parent;
}
}
foreach ( $items as $item ) {
if ( in_array( $item->ID, $parents ) ) {
$item->classes[] = 'active';
}
}
return $items;
}
解决方案
我找到了我自己问题的答案,这就是我要找的..
add_filter( 'wp_nav_menu_objects', 'add_menu_parent_class' );
function add_menu_parent_class( $items ) {
$parents = array();
foreach ( $items as $item ) {
if ( in_array('current-post-ancestor', $item->classes) ) {
$parents[] = $item->menu_item_parent;
}
}
foreach ( $items as $item ) {
if ( in_array( $item->ID, $parents ) ) {
$item->classes[] = 'current-menu-ancestor';
}
}
return $items;
}
它将向当前后祖先菜单项父级添加一个类。
推荐阅读
- c++ - 为什么 MOCK_METHOD 语法在 GMock 中不起作用?
- c++ - 没有与两种类型的字符串匹配的函数调用
- python - 如何在不使用睡眠功能的情况下每 N 次做 X 次?
- .net - 在寓言中打印具有相同宽度的正负整数
- bitbucket-pipelines - Bitbucket Pipeline:主机密钥不匹配(在 RSA 之前首选 ECDSA)
- hadoop - 使用和不使用 MapReduce 组合器的 Hadoop 文件系统计数器
- javascript - 文档加载时如何使用css类名设置文本框值
- python-3.x - 为什么类节点不保存方法调用之外的子节点?Python
- office-ui-fabric - ScrollablePane - 滚动到顶部
- html - 使图像标题在悬停时覆盖整个图像