我通过自定义链接(链接到存档页)为我的自定义帖子类型创建了一个自定义导航菜单。假设我有一个名为“product”的自定义帖子类型,当我单击菜单时,它将转到“product”的存档页面,并且“product”将突出显示。这很容易,因为在“产品”归档页面中,WP会自动将“当前菜单项”类添加到菜单中。
但有一个问题,在存档页面中,“当前菜单项”似乎只添加到存档的第一页。当我转到第2页时,“当前菜单项”没有添加到类中,菜单也没有突出显示。
除此之外,我还希望在查看“产品”类型下的帖子时突出显示菜单。
因此,我尝试将此代码添加到函数中:
function add_active_classes($classes = array(), $menu_item = false){
global $wp_query;
if(in_array(\'current-menu-item\', $menu_item->classes)){
$classes[] = \'current-menu-item\';
}
if ( $menu_item->post_type == \'product\' && is_post_type_archive(\'product\') ) {
$classes[] = \'current-menu-item\';
}
if ( $menu_item->post_type== \'product\' && is_singular(\'product\') ) {
$classes[] = \'current-menu-item\';
}
return $classes;
}
add_filter( \'nav_menu_css_class\', \'add_active_classes\', 10, 2 );
结果没有什么变化。我做错了什么?
SO网友:chifliiiii
你几乎是对的。请尝试以下操作:
function add_active_classes($classes = array(), $menu_item = false){
global $wp_query;
if(in_array(\'current-menu-item\', $menu_item->classes)){
$classes[] = \'current-menu-item\';
}
if ( $menu_item->title == \'product\' && is_post_type_archive(\'product\') ) {
$classes[] = \'current-menu-item\';
}
if ( $menu_item->title== \'product\' && is_singular(\'product\') ) {
$classes[] = \'current-menu-item\';
}
return $classes;
}
add_filter( \'nav_menu_css_class\', \'add_active_classes\', 10, 2 );
我假设您的自定义帖子类型称为“product”,并且您创建了一个包含该slug的页面,并将其添加到菜单中