【问题标题】:Loop through WordPress posts, and wrap each X post in a DIV [duplicate]循环浏览 WordPress 帖子,并将每个 X 帖子包装在 DIV [重复]
【发布时间】:2015-03-30 15:07:15
【问题描述】:

注意:这是一个自我问答

在 WordPress 中构建不对称网格布局时,您通常希望将每个 X 帖子包装在一个 div 中,如下所示:

div
    post
    post
/div
div
    post
    post
/div
div
    post
    post
/div

我想避免使用模运算符,因为它很快就会让人困惑。

【问题讨论】:

  • 为什么模数运算符令人困惑?这是非常常见且直接的方法。
  • 你必须跟踪计数,你必须有一堆 if/else 以确保包装 div 不会被打开和/或第一个被正确创建。跨度>

标签: php wordpress loops modulo


【解决方案1】:

大多数人使用模运算符来执行此操作,但如果没有找到帖子,或者甚至在最后一个帖子上发生除法,这样做会很尴尬。我已经通过@The Shift Exchange 扩展了answer provided here,以更简洁的方式进行操作。

<?php
    // Get posts (tweak args as needed)
    $args = array(
        'post_type'        => 'page',
        'orderby'          => 'menu_order',
        'posts_per_page'   => -1,
        'post_parent'      => $post->ID,
        'order'            => 'ASC'
    );
    $posts = get_posts( $args );
?>

<?php foreach (array_chunk($posts, 2, true) as $posts) :  ?>

    <div class="row">

        <?php foreach( $posts as $post ) : setup_postdata($post); ?>

            <a id="post-<?php the_ID(); ?>" <?php post_class(); ?> href="<?php the_permalink(); ?>">
                <?php the_post_thumbnail(); ?>
            </a>

        <?php endforeach; ?>

    </div>

<?php endforeach; ?>

您可以将第一个 foreach 循环中的“2”更改为您希望每行分组的数量。

【讨论】:

  • 哇。我一直使用模数,但这更干净。非常好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
  • 2014-01-22
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多