我写了一个查询来显示 Wordpress 中的相关帖子,简要说明:首先它检查当前帖子所属的类别,然后将这些类别的“slug”名称放入一个数组(“$cats”)然后使用 foreach,我查询具有相同分类的帖子。此代码效果很好,除非当前帖子属于多个类别并且还有另一个帖子也属于这些类别,在这种情况下,另一个帖子会显示两次甚至更多,具体取决于他们共享的类别数量,
所以问题是,我如何检查一个帖子是否重复以及如何防止它? 代码:
<?php
$terms = get_the_terms( $currentid, 'taxonomy' );
$cats = array_map(function($a){ return $a->slug; }, $terms);
foreach ($cats as $cat) {
$args=array(
'taxonomy' => $cat ,
'post_type' => 'apps',
'post_status' => 'publish',
'posts_per_page' => 4,
);
global $wp_query;
$wp_query = new WP_Query($args);
while ($wp_query->have_posts()) : $wp_query->the_post();
if($currentid !== get_the_ID()){
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
<?php
if ( has_post_thumbnail() ){
$appfetured = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ));
$appfeturedimage = $appfetured[0];
}else{
$appfeturedimage = '../img/defaultappicon.png';
}
?>
<img class="appfeatured" src="<?php echo $appfeturedimage; ?>" alt="<?php the_title_attribute(); ?>" />
</a>
</li>
<?php
}
endwhile;
wp_reset_query(); // Restore global post data stomped by the_post().
}//end foreach
?>