将“main”帖子ID与wp_Query循环内的ID进行比较

时间:2013-08-23 作者:Eckstein

我的网站上有一个视频观看区。单个帖子模板显示一个大区域,视频在其中播放,然后在右侧有一列代表其他视频的缩略图。很像YouTube。

如果当前显示的视频(假设帖子ID为123)与右侧的一个缩略图(也是ID 123)匹配,我想给缩略图一个不同的css类(由下面的内联样式表示),以便我可以突出显示它,让用户知道这是当前播放的视频。

我使用wp\\u query获取右侧边栏部分的帖子,但我不知道如何在循环中比较这两个ID。下面是我认为可行的简化版本,但它只是将类赋予循环的所有迭代,而不仅仅是当前迭代。

<?php while ( have_posts() ) : the_post(); 
$primaryid = get_the_ID(); ?>
<?php 
            $args = array (
                \'post_type\' => \'post\',
                \'post_status\' => \'publish\',
                \'orderby\' => \'meta_value_number\',
                \'meta_key\' => \'episode\',
                \'order\' => \'ASC\',
                );
            // The Query
            $query = new WP_Query( $args );

            // The Loop
            if ( $query->have_posts() ) { ?>

                <?php while ( $query->have_posts() ) {
                    $query->the_post(); ?>
                    <?php if (get_the_ID() == $primaryid) {
                        $style = \'style="border: 1px solid #fff;"\';
                        } ?>
<?php endwhile; // end of the loop. ?>

1 个回复
SO网友:Eckstein

我想出来了,但不确定这是不是最好的方法。我在循环中获得当前帖子的id,然后使用is\\u single来确定显示的是哪个帖子,然后给出样式。问题是,这也会延续到循环的下一次迭代,并改变样式。为了解决这个问题,我只需在循环结束时将$style变量设为null。

$curID = get_the_ID(); 
                     if (is_single($curID) == true) {
                        $style = \'style="border: 1px solid #fff;"\';
                        } 
//Stuff here?>

<?php $style = \'\'; ?>

结束

相关推荐

Count > 1 Navigation Slider

我有一个帖子类型slider, 当您有多个帖子要显示导航时。我的代码:<?php $count_slider = wp_count_posts(\'slider\'); echo $count_slider->publish; ?> <?php if($count_slider > 1): ?> <div id=\"slideshowcontrol\" class=\"clearfi