0

我试图在查看单个帖子时突出显示主博客卷。帖子只有一个类别,并且没有显示此类别的菜单,因此我无法使用 .current-post-ancestor。

我有以下功能,但我收到了我不明白的错误。类别为“show”,Blog 页面的 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 );`

谢谢你的帮助

4

3 回答 3

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

于 2013-08-17T22:07:17.540 回答
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

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

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

于 2013-08-18T15:57:19.733 回答
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 } ?>

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

如果为真,则导航菜单项li标签与类current_page_parent(在您的情况下是“博客”链接)被分配另一个原生 WordPress 导航菜单licurrent-menu-item,使链接显示为活动或突出显示,这取决于它的样式。

如果您需要有关此的更多详细信息,我会在此处写一篇简短的文章来解释该过程:在查看单个帖子时保持“博客”链接突出显示

于 2015-02-14T12:21:52.750 回答