在单页上突出显示侧栏中的POST

时间:2013-04-24 作者:andy

当您有一个用于显示页面的菜单时,很容易突出显示当前页面,因为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突出显示?

1 个回复
最合适的回答,由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(),以仅在需要的页面上显示。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post