当您有一个用于显示页面的菜单时,很容易突出显示当前页面,因为WP在其上放置了一个类。
但我有一个侧边栏,其中有20篇最新的帖子,还有一个单独的主要内容区域,用于普通页面循环和单页面/类别页面等。
我的边栏循环如下所示。
<ul>
<?php
$sidebar_query = new WP_Query(array(
\'showposts\' => 20
) );
?>
<?php while ($sidebar_query->have_posts()) : $sidebar_query->the_post(); ?>
<li>
<?php if(has_post_thumbnail()) :?>
<div class="figure">
<?php the_post_thumbnail(\'sidethumb\'); ?>
</div> <!-- end div figure //centers thumbnail -->
<?php else :?>
<?php endif;?>
<a href="<?php the_permalink() ?>">
<span class="theparentcat">
<?php
$cat_names = wp_list_pluck( get_the_category(), \'cat_name\');
echo wp_sprintf_l( \'%l\', $cat_names );
?>
</span>
<h2><?php the_title (); ?></h2>
<span class="thetime">
<?php echo human_time_diff( get_the_time(\'U\'), current_time(\'timestamp\') ) . \' ago\'; ?>
</span>
</a>
</li>
<?php endwhile; wp_reset_query(); ?>
</ul>
现在,在一个页面上突出显示当前帖子的最佳方式(如果有)是什么?现在我可以在那里回显一个类或其他内容,但它将应用于循环中的所有帖子,因此这是无用的。
所以我得说,
故事一故事二故事三
在侧边栏中,我在故事1的页面上,如何只向该帖子添加一个类,以便它可以用css突出显示?
最合适的回答,由SO网友:Fränk 整理而成
最简单的方法是向包含post ID的链接添加一个类。
<a href="<?php the_permalink() ?>" class="post-<?php echo get_the_ID(); ?>">
然后,您可以编写一个自定义CSS函数,将其放入函数中。php和挂钩到wp\\U头。此函数仅用于回显必要的CSS以突出显示链接。
function theme_prefix_highlight_current_post_in_sidebar() {
if( is_single() ) {
global $post;
?>
<style type="text/css" media="screen">
body.postid-<?php echo $post->ID; ?> a.post-<?php echo $post->ID; ?> {
color: #f00;
}
</style>
<?php
}
}
add_action(\'wp_head\', \'theme_prefix_highlight_current_post_in_sidebar\');
编辑:在旁注中,如果您可能希望在此函数中添加条件检查,如is\\u single(),以仅在需要的页面上显示。