这是我用来显示当前帖子所属类别(当前帖子正下方)下的4篇最新帖子的代码:
<?php if (is_single()) : ?>
<?php
$count = 0;
$aahan_category = get_the_category();
$aahan_category = get_term_by( \'name\', $aahan_category[0]->cat_name, \'category\');
$some_featured_posts = new WP_Query(array(\'category_name\' => $aahan_category->slug, \'posts_per_page\' => 4));
while ($some_featured_posts->have_posts()):
$some_featured_posts->the_post();
$count++;
$no_margin = (2 == $count || 4 == $count) ? \' no-margin-right\' : \'\';
?>
<div class="latest-category-posts-image-t<?php echo $no_margin; ?>">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php the_post_thumbnail( \'thumbnail\' ); ?>
<h1 class="latest-category-posts-text"><?php the_title(); ?></h1>
</a>
</div>
<?php
endwhile;
wp_reset_postdata();
?>
<?php endif; ?>
如果有必要,我在中添加了此代码
content-single.php
. 代码基本上显示了当前帖子所属类别下最近4篇帖子的特色图片(帖子缩略图)及其标题。
现在的问题是,当前职位是否属于n
最近发布的帖子(n = 4
根据我的代码),如何将其从列表中排除?
PS: 虽然不用说,但如果您能展示我使用的代码是如何优化的,那就太好了。
最合适的回答,由SO网友:Stephen Harris 整理而成
您可以使用post__not_in
parameter of WP_Query
从查询中排除帖子ID数组。
get_the_category()
返回一个术语对象数组,因此get_term_by
是多余的。而且is_single()
永远都是真的content-single.php
(严格来说,这不是真的,但只有当您与模板选择发生冲突时才是真的)。
(最后,在你的例子中,如果你最多有4篇帖子,那么(2==$count || 4==$count)
相当于($count%2 == 0)
)
<?php
$count = 0;
$cat = get_the_category();
if( $cat ){
$featured_posts = new WP_Query(array(
\'post__not_in\'=>array(get_the_ID()),
\'category_name\' => $cat->slug,
\'posts_per_page\' => 4
));
while ( $featured_posts->have_posts() ): $featured_posts->the_post();
$count++;
$no_margin = ($count%2 == 0) ? \' no-margin-right\' : \'\';
?>
<div class="latest-category-posts-image-t<?php echo $no_margin; ?>">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php the_post_thumbnail( \'thumbnail\' ); ?>
<h1 class="latest-category-posts-text"><?php the_title(); ?></h1>
</a>
</div>
<?php
endwhile;
wp_reset_postdata();
}
?>