Создайте div каждый месяц в цикле WordPress - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь создать список сообщений, в которых каждый месяц отображается разделитель.

Он должен выглядеть примерно так:

January 2018
- blog post
- blog post
Febuary 2018
- blog post
etc....

Код, который я используюэто простая петля.Я попытался заставить разделитель работать с помощью функции the_date () и изменить формат даты.Но он все еще срабатывает для каждого дня.

<?php
    $args = array(
        'post_type'         => 'post',
        'posts_per_page'    => -1
    );
    $the_query = new WP_Query($args); if($the_query->have_posts()): while($the_query->have_posts()): $the_query->the_post();
?>

<?php if(!the_date('F Y','','',false) == ''){ ?>
    <div class="seperator">
        <?php the_time('F Y'); ?> //echo month and year
    </div>
<?php } ?>

<div class="post"> //the post content </div>

<?php endwhile; endif; wp_reset_query(); ?>

Я не знаю, какой код использовать, чтобы он срабатывал только каждый месяц.

1 Ответ

0 голосов
/ 14 декабря 2018

Вы должны попробовать что-то вроде этого:

 <?php
        $args = array(
            'post_type'         => 'post',
            'posts_per_page'    => -1,
            'orderby' => 'date',
            'order' => 'DESC'
        );  
        $the_query = new WP_Query($args); if($the_query->have_posts()): while($the_query->have_posts()): $the_query->the_post();

        if ($lastMonth && the_date('mm') !== $lastMonth) {
                // new month
        }

        $lastMonth = the_date('mm');

    ?>

Таким образом, на каждой итерации вы устанавливаете месяц публикации в переменной lastMonth.На следующей итерации вы проверяете, равен ли месяц публикации предыдущему.Если нет, вы находитесь в новом цикле и можете вставить свой разделитель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...