Loop counter style

时间:2016-10-11 作者:user52466

我为帖子创建了两种不同的风格。源代码在这里:WP初学者。com/wp主题/如何为每个wordpress帖子设置不同的样式。

这是我的代码:

<?php $count = 0; ?>
<?php query_posts($query_string.\'&posts_per_page=30\'); while (have_posts()) : the_post(); ?>
<?php $count++; ?>
<?php if ($count == 1) : ?>

<div id="listpostsleft">
<article id="listpostsleft-<?php the_ID(); ?>" <?php post_class("listpostsleft clearfix $class"); ?>>
text images
</article>
</div>
<div class="clear"></div>


<?php elseif ($count == 2) : ?>

  <div id="listpostsright">
<article id="listpostsright-<?php the_ID(); ?>" <?php post_class("listpostsright clearfix $class"); ?>>
images text
</article>
</div>
<div class="clear"></div>

<?php else : ?>

<div id="listpostsleft">
<article id="listpostsleft-<?php the_ID(); ?>" <?php post_class("listpostsleft clearfix $class"); ?>>
text images
</article>
</div>


</article>
</div>
<div class="clear"></div>


  <?php endif; ?>
<?php endwhile; ?>
<?php pagination()?>
<?php else : ?>

<p><?php _e( \'Sorry, nothing found.\' ); ?></p>
<?php endif; ?>
但结果是:http://imgur.com/a/yB5sK

我打算做的是:correctway

第一根柱子应该在右边,第二根柱子应该在左边。其他帖子的风格应该在无限循环中遵循相同的标准。

我该怎么做?

对不起,我的英语!

1 个回复
最合适的回答,由SO网友:ngearing 整理而成

您可以使用PHP中的模运算符来检查循环计数是奇数还是偶数,然后基于此为这些元素分配一个CSS类。

$class = \'listpostsright\';
if ($wp_query->current_post % 2 == 0) {
    $class = \'listpostsleft\';
}

Things to note:

<编程中的计数从0开始,因此此逻辑可能向后看,但它应该可以工作。

无需使用变量来计算Wordpress在$wp_query 对象

切勿使用query_posts 使用pre_get_posts 相反

Update:下面是一个如何在模板中使用它的示例。

<?php
// Use pre_get_posts to alter your query.
// This would be done in your functions.php
while (have_posts()) :
    the_post();

    $class = \'listpostsright\';
    if ($wp_query->current_post % 2 == 0) {
        $class = \'listpostsleft\';
    }
?>

    <article id="post-<?php the_ID(); ?>" <?php post_class($class); ?>>
        Positioning of your elements here, you should be able to do with css alone. Unless it is much more complex than your example.
    </article>

<?php endwhile; ?>

Arithmetic OperatorsPHP

pre_get_posts

相关推荐

当in_the_loop()为假时,何时以及为什么is_Single(‘my_cpt’)为真?

我正在使用模板系统的示例代码。此地址的页码:http://project.test/my_cpt/hello-post/.无法理解原因is_singular( \'my_cpt\' ) 是true 虽然in_the_loop() 是false.在页面模板中The Loop "E;“工程”:if ( have_posts() ) { while ( have_posts() ) { the_post(); ?>