我有一个名为”投资组合”的页面。我使用此页面显示名为” Works”的自定义帖子类型的档案。为此, 我使用名为”工作档案”的自定义模板显示投资组合页面。
当我在单个Works上时, 我想突出显示菜单中的”投资组合”页面。
你能帮助我吗?
#1
这可以帮助你
function change_page_menu_classes($menu){
global $post;
if (get_post_type($post) == 'portfolio')
{
$menu = str_replace( 'current_page_parent', '', $menu ); // remove all current_page_parent classes
$menu = str_replace( 'page-item-366', 'page-item-366 current_page_parent', $menu ); // add the current_page_parent class to the page you want
}
return $menu;
}
add_filter( 'wp_page_menu', 'change_page_menu_classes', 0 );
资源
#2
嘿, 我不知道这是否仍然有意义, 但是我遇到了这个问题, 并且效果很好。我正在使用发帖主题为”项目”的roots主题
// Remove active class from menu
function remove_active_class($class) {
return ( $class == 'active' ) ? FALSE : TRUE;
}
// Add active class to menu of post type single template
function add_class_to_wp_nav_menu($classes) {
if( is_singular( 'projects' ) ) {
$classes = array_filter( $classes, 'remove_active_class' );
if( in_array( 'menu-projects', $classes) ) {
$classes[] = 'active';
}
} elseif( is_singular( 'resources' ) ) {
$classes = array_filter( $classes, 'remove_active_class' );
if( in_array( 'menu-resources', $classes) ) {
$classes[] = 'active';
}
}
return $classes;
}
add_filter('nav_menu_css_class', 'add_class_to_wp_nav_menu');
#3
add_filter( 'nav_menu_css_class', 'namespace_menu_classes', 10, 2 );
function namespace_menu_classes( $classes , $item ){
if ( get_post_type() == 'attorneys' ) {
$classes = str_replace( 'current_page_parent', '', $classes );
if ( $item->url == '/attorneys' ) {
// Replace "attorneys" with your code
if(preg_match('/attorneys/', $item->url)) {
$classes = str_replace( 'menu-item', 'menu-item current_page_parent', $classes );
}
}
return $classes;
}
从此处更改:https://wordpress.org/support/topic/custom-post-type-highlighting-current-menu-item
评论前必须登录!
注册