查看单个帖子时突出显示“博客”菜单

时间:2013-08-17 21:55:21

标签: wordpress

我正在尝试在查看单个帖子时突出显示主要博客卷。帖子只有一个类别,没有显示此类别的菜单,所以我不能使用.current-post-ancestor。

我有以下功能,但我收到的错误我不明白。类别为“show”,博客页面的ID为15

//Highlight Blog Link in main menu when on post page
function post_css_class( $css_class, $page ) {

if (in_category('show') == $page->15 ) {
    $css_class[] = '#header .menu .current_page_item a';
}
return $css_class;
}
add_filter( 'page_css_class', 'post_css_class', 10, 2 );`

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

function my_special_nav_class( $classes, $item ) {
    if( is_single() && in_category('show') && $page->ID == 15 ) {
        $classes[] = 'current_page_item';
    }
    return $classes;
}
add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );

可能有用吗?

无论如何,你不应该使用page_css_class,而是将其作为参考http://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_css_class

答案 1 :(得分:0)

得到它 - 是的 - 所以如果其他人在寻找同样的东西,我的功能是:

function blog_link_genesis() {
if( is_single() && in_category('show')) { 
$current = '#header .menu #menu-item-19 a';  }
?>
<style type="text/css">
<?php echo $current; ?> { color: #ef4634;}
</style>
<?php }
add_action( 'genesis_header' , 'blog_link_genesis'  );

这是我添加的CSS

header .menu .current-menu-item#menu-item-19 a {color:#ef4634;}

我可能在那里有多余的标记,如果有人想纠正它,请成为我的客人!

答案 2 :(得分:0)

这对我有用:

<?php if (is_single() || is_category() || is_tag() || is_search()) {   //  displaying a single blog post or a blog archive ?>
    <script type="text/javascript">
        jQuery("li.current_page_parent").addClass('current-menu-item');
    </script>
<?php } ?>

它的工作原理是代码检查用户所在的页面是单个帖子还是存档(类别,标签或搜索)。

如果为true,导航菜单项li标记类current_page_parent(在您的情况下是“博客”链接)将被分配另一个本机WordPress导航菜单li class {{ 1}}使链接显示为活动或突出显示,取决于它的样式。

如果您需要更多详情,请写一篇简短的文章来解释这个过程:Keep “Blog” link highlighted when viewing a single post