如何使用条件运算符计算自定义POST类型

时间:2016-08-05 作者:Heather

我有一个自定义的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;
    }

2 个回复
最合适的回答,由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
}

SO网友:Annapurna

是否可以只打印r($循环)(&;print\\u r($count\\u posts)并查看输出结果。