Примечание: это вопрос Q & A
При построении асимметричных макетов сетки в WordPress обычно бывает, что вы хотите обернуть каждый столбец X в div, например:
div post post /div div post post /div div post post /div
Я бы хотел избежать использования оператора modulo, поскольку он быстро запутывается.
Большинство людей делают это с помощью оператора modulo, но неудобно делать это, если сообщений не найдено, или даже деление происходит на последнем посту. Я расширил ответ, предоставленный здесь @ The Shift Exchange, чтобы сделать это более чистым способом.
<?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; ?>
Вы изменили бы «2» в первом цикле foreach на количество, которое вы хотите сгруппировать по каждой строке.