这是我的WordPress循环。我试了一些东西,但没有什么能像我想的那样。
while ( $loop->have_posts() ) : $loop->the_post();
$timestamp = get_post_meta( $post->ID, '_tatort_datum', true );
$ts_jahr = strftime("%Y",$timestamp);
if($ts_jahr != $jahr_l) {
echo '<h2 class="spacer_jahr" id="'. $ts_jahr .'">'. $ts_jahr .'</h2>';
}
$jahr_l = $ts_jahr;
$ts_monat = strftime("%m",$timestamp);
if($ts_monat != $monat_l) {
echo '<h3 class="spacer_monat" id="'. strtolower($monat[$ts_monat]) . "_" . $ts_jahr. '">'. $monat[$ts_monat] .'</h3>';
}
$monat_l = $ts_monat;
<article>here the content</article>
<?php endwhile; wp_reset_query(); ?>
输出结果为:
<h2>Headline</h2>
<h3>Headline</h3>
<article>Content</article>
<article>Content</article>
<article>Content</article>
<h3>Headline</h3>
<article>Content</article>
<article>Content</article>
但是,我需要这个输出:
<h2>Headline</h2>
<div class="month"> /* Here is the Change */
<h3>Headline</h3>
<article>Content</article>
<article>Content</article>
<article>Content</article>
<div>
<div class="month">
<h3>Headline</h3>
<article>Content</article>
</div>
但是,我现在不知道如何做到这一点。我想在新文章的每个新月份都有一个div
容器,所以我需要一个提示或代码片段,以正确的方式解释我。
答案 0 :(得分:1)
您可以使用布尔变量$divOpen
来跟踪<div>
是否已打开...
$divOpen = false;
while ($loop->have_posts()) : $loop->the_post();
$timestamp = get_post_meta($post->ID, '_tatort_datum', true);
$ts_jahr = strftime("%Y", $timestamp);
if ($ts_jahr != $jahr_l) {
if ($divOpen) {
echo '</div>';
$divOpen = false;
}
echo '<h2 class="spacer_jahr" id="'. $ts_jahr .'">'. $ts_jahr .'</h2>';
}
$jahr_l = $ts_jahr;
$ts_monat = strftime("%m",$timestamp);
if ($ts_monat != $monat_l) {
if ($divOpen)
echo '</div>';
echo '<div class="month">';
$divOpen = true;
echo '<h3 class="spacer_monat" id="'. strtolower($monat[$ts_monat]) . "_" . $ts_jahr. '">'. $monat[$ts_monat] .'</h3>';
}
$monat_l = $ts_monat;
<article>here the content</article>
<?php endwhile; wp_reset_query(); ?>
if ($divOpen)
echo '</div>';