循环浏览WordPress帖子,并将每个X帖子包装在DIV中

时间:2015-01-31 03:13:11

标签: php wordpress loops modulo

注意:这是一个自我Q& A

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

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

我想避免使用模运算符,因为它会很快混淆。

1 个答案:

答案 0 :(得分:9)

大多数人使用模运算符执行此操作,但如果找不到帖子,或者在最后一个帖子上发生甚至分割,则执行此操作会很尴尬。我已经通过@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; ?>

你会改变&#34; 2&#34;在第一个foreach循环中,您希望每行分组的数量。