Как отобразить макет виджета «Архивы» (боковая панель) в Wordpress по годам, а затем по месяцам? - PullRequest
0 голосов
/ 26 апреля 2018

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

Mar 2018
Feb 2018
Jan 2018

Однако мне бы хотелось, чтобы это отображалось так:

2018
March
February
January

2017
December
November
October

Где месяцы - это ссылки. Как мне этого добиться? Что мне делать с файлом sidebar.php?

1 Ответ

0 голосов
/ 27 апреля 2018

Я нашел ответ, просто используйте его на sidebar.php или в любом другом месте, где вы хотите, чтобы архив появлялся:

<?php
                            global $wpdb;
                            $limit = 0;
                            $year_prev = null;
                            $months = $wpdb->get_results("SELECT DISTINCT MONTH( post_date ) AS month ,  YEAR( post_date ) AS year, COUNT( id ) as post_count FROM $wpdb->posts WHERE post_status = 'publish' and post_date <= now( ) and post_type = 'post' GROUP BY month , year ORDER BY post_date DESC");
                            foreach($months as $month) :
                            $year_current = $month->year;
                            if ($year_current != $year_prev){
                                if ($year_prev != null){?>

                                <?php } ?>

                            <li class="archive-year"><?php echo $month->year; ?></li>

                            <?php } ?>
                            <li><a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>"><span class="archive-month"><?php echo date_i18n("F", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span></a></li>

                        <?php $year_prev = $year_current;

                        if(++$limit >= 18) { break; }

                        endforeach; ?>  

Стиль по своему вкусу.

...