在自定义帖子类型的菜单中突出显示页面

时间:2013-12-16 14:34:21

标签: wordpress wordpress-theming

我有一个名为“投资组合”的页面。我使用此页面显示名为“Works”的自定义帖子类型的存档。我这样做是通过使用名为“工作档案”的自定义模板显示投资组合页面。

当我在一篇文章中发帖时,我想在菜单中突出显示“投资组合”页面。

你能帮助我吗?

3 个答案:

答案 0 :(得分:-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 );

Source

答案 1 :(得分:-1)

嘿,我不知道如果这仍然相关,但我遇到了这个并且效果很好。我使用了根主题的帖子类型"项目"

// 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');

答案 2 :(得分:-1)

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