我在自定义帖子类型中有一个循环。
我想只选择8个帖子,并将输出打印成2列,每列4个帖子。我真的不确定如何处理这个问题。到目前为止,我有:
<?php
$args = array( 'post_type' => 'hh_event', 'posts_per_page' => 8 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
echo '<div class="entry-date">';
$event_date = get_post_meta($post->ID, 'event_date', true);
echo date('M j',strtotime($event_date));
echo '</div>';
the_title();
echo '<div class="entry-content">';
the_content();
echo '</div>';
endwhile;
?>
答案 0 :(得分:1)
一个简单的解决方案是将您的内容存储在数组中,如下所示:
<?php
$args = array( 'post_type' => 'hh_event', 'posts_per_page' => 8 );
$loop = new WP_Query( $args );
$columns = array( '', '' );
$content = '';
$i = 0;
global $post;
while ( $loop->have_posts() ) : $loop->the_post();
$content = '<div class="entry-date">';
$event_date = get_post_meta($post->ID, 'event_date', true);
$content .= date('M j',strtotime($event_date));
$content .= '</div>';
$content .= get_the_title();
$content .= '<div class="entry-content">';
$content .= apply_filters( 'the_content', $post->post_content );
$content .= '</div>';
$columns[ ($i % 2) ] .= $content;
$i ++;
endwhile;
echo '<div class="column-left">' . $columns[0] . '</div><div class="column-right">' . $columns[1] . '</div>';
?>
所以基本上你有一个包含两个空字符串的数组。然后,将每列的内容分配给名为$content
的变量。然后,将该变量的值附加到$columns
变量的正确部分,并递增计数器$i
。
然后只需将每列的内容回显到正确的包装<div>
元素,或者您将它们分成两列。