如果总数是偶数或奇数,如何计算循环中的帖子总数并创建不同的输出(WP)

时间:2015-11-03 03:51:20

标签: php wordpress

所以我一直在寻找解决方案一段时间无济于事。有很多关于为偶数帖子和奇数帖子创建不同输出的信息,但我需要不同的东西。

基本上我已经动态加载了添加到页面的帖子。它们都是具有float: left CSS规则的容器的50%。因此,如果帖子的总数甚至看起来很棒,如果它很奇怪,那么在最后一个帖子加载到页面后会有一个尴尬的空白空间。

我想创建一条规则,说明如果帖子的总数是偶数,则应用此标记,如果是奇数,则应用备用标记。然后我可以把标记的最后一个孩子拿到并强制宽度为100%而不是50%。

这是我的循环:

<?php $the_query = new WP_Query();
    $x = 0;
    while ( $the_query->have_posts() ) :
        $the_query->the_post(); ?>

        <article>
            Some Content
        </article>
    <?php endwhile;
    $x++;
wp_reset_query(); ?>

CSS:

article { width: 50%; float: left; }

我想要的是:

<?php if ($post_count = even) : ?>
    <article>
        Some Content
    </article>
<?php elseif ($post_count = odd) : ?>
    <article class="alt">
        Some Content
    </article>
<?php endif; ?>

CSS:

article { width: 50%; float: left; }
article.alt:last-child { width: 100%; }

是否有人熟悉如何实现这一目标?一如既往,非常感谢任何帮助!

欢呼声,

2 个答案:

答案 0 :(得分:1)

模数(%)运算符可以在这里使用

if (($x % 2) == 1)
{
  echo "odd";
}

if (($x % 2) == 0)
{
  echo "even";
}

请参阅:php test if number is odd or even

答案 1 :(得分:0)

你可以试试这个:

$count_posts = wp_count_posts();
$published_posts = $count_posts->publish;
if($published_posts % 2 == 0) 
{
    // even
}
else
{
    //odd
}

如果您想知道各自的帖子是偶数还是奇数...请参阅以下内容:

<?php $postnum = 0;?>
    if (have_posts()) : while (have_posts()) : the_post(); ?>

<?php $postnum++;
    $alt = ( $postnum % 2 ) ? ' even_post' : ' odd_post';
?>