我想按如下分类法查询帖子:
<?php
global $post;
$terms = get_the_terms( $post->ID , \'movies\', \'string\');
$do_not_duplicate[] = $post->ID;
if(!empty($terms)){
foreach ($terms as $term) {
query_posts( array(
\'movies\' => $term->slug,
\'showposts\' => 4,
\'caller_get_posts\' => 1,
\'post__not_in\' => $do_not_duplicate ) );
if(have_posts()){
while ( have_posts() ) : the_post(); $do_not_duplicate[] = $post->ID; ?>
do stuff
<?php endwhile; wp_reset_query();
}
}
}
?>
但我只想展示这一点,同时也会出现具有相同分类法的帖子。
我该怎么做?
类似于:if有分类法和post?
谢谢
公元
SO网友:mrwweb
如果你看看the array that get_the_terms()
returns, 您将看到它包含一个“count”。
如果我正确理解了您的问题,那么您将查找计数大于1的所有帖子(即条款多于当前帖子)。所以,我认为你可以简单地改变你的foreach
对此的声明(第二行是更改):
foreach ($terms as $term) {
if( $term->count > 1 ) {
query_posts( array(
\'movies\' => $term->slug,
\'showposts\' => 4,
\'caller_get_posts\' => 1,
\'post__not_in\' => $do_not_duplicate ) );
if(have_posts()){
while ( have_posts() ) : the_post(); $do_not_duplicate[] = $post->ID; ?>
// do stuff
<?php endwhile; wp_reset_query();
}
}
}
此外,
get_the_terms()
只接受两个参数(至少根据法典),所以我不确定第三个参数在做什么。可能什么都没做?如果您试图从两种分类法中获取术语,请查看
wp_get_object_terms()