我有一个自定义的post类型,我想使用if/elseif/else语句。如果post类型的post count等于1 do X,则elseif post count大于1 do Y,else do Z。
这是我到目前为止所使用的代码,但是当我添加count post类型时,\\u内容和\\u标题开始引入普通页面,而不是自定义的post类型。而且,我很确定这也不算发帖数。如果我删除If/elseif/else,while循环就可以正常工作。
另外,我去掉了while循环中的代码,使其更加简化。对于滑块,普通代码要复杂得多。滑块即使只有一个滑块也可以运行,因此我需要第一个if语句来省略滑块(如果只有一个帖子)。
function getTestimonial() {
$args = array( \'post_type\' => \'testimonial\' );
$loop = new WP_Query( $args );
$count_posts = wp_count_posts( \'testimonial\' );
if(count($count_posts) == 1) :?>
<?php the_content(); ?>
<?php the_title(); ?>
<?php elseif(count($count_posts) > 1) : ?>
<?php if ($loop->have_posts()) : while ($loop->have_posts()) : $loop->the_post(); ?>
<div id="slider">
<?php the_content(); ?>
<?php the_title(); ?>
</div>
<?php endwhile; endif; ?>
<?php else: ?>
<p>No listing found</p>
<?php endif;
}
最合适的回答,由SO网友:Krzysztof Grabania 整理而成
WP_Query
提供一些有用的属性。您可以使用其中两种:
$post_count
- 显示的帖子数(如果未通过posts_per_page
WP\\u Query construct的参数最多返回5篇文章$found_posts
- 找到的与当前查询参数匹配的帖子总数(因此,如果数据库中有100篇帖子适合这些参数,则此属性将返回100篇帖子)
以下是代码示例:
$args = array( \'post_type\' => \'testimonial\' );
$loop = new WP_Query( $args );
$numposts = $loop->post_count;
if ($numposts == 1) {
// do X
} else if ($numposts > 1) {
// do Y
} else {
// do Z
}