Отобразить архив по годам и месяцам по горизонтали - PullRequest
0 голосов
/ 27 февраля 2020

На странице архива WordPress я пытаюсь показать архивы по годам и месяцам по горизонтали, например this . Мне удалось отобразить годы по горизонтали, но по некоторым причинам месяцы не отображаются так, как задумано. Проблема в том, что все месяцы всех лет отображаются и накладываются друг на друга, как на рисунке ниже. enter image description here

То, что я намерен достичь, - это показывать только месяцы для выбранного года, и если щелкнуть любой другой год, должны появиться его соответствующие месяцы.

Так вот мой код ниже. Пожалуйста, посмотрите и скажите мне, чего не хватает:

<?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");

echo "<ul>";
foreach($months as $month)
{
    $year_current = $month->year;

    if($year_current != $year_prev)
    {
        if($year_current != date('Y'))
        {
            ?>
            </ul>
            <?php
            }
            ?>
            <li>
                <!-- years -->
                <a href="<?php bloginfo('url'); ?>/blog/<?php echo $month->year; ?>/"><?php echo $month->year; ?></a>
                <!-- months -->
                <ul class="archive-list" style="display:block;">
                    <?php
                    }
                    ?>
                    <li>
                        <a href="<?php bloginfo('url'); ?>/blog/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)); ?>">
                        <?php echo date_i18n("M", mktime(0, 0, 0, $month->month, 1, $month->year)); ?>
                        </a>
                        &nbsp;&nbsp;&nbsp;
                    </li>
                    <?php
                    $year_prev = $year_current;

                    }
                    ?>
                </ul>
            </li>
        </ul>

1 Ответ

0 голосов
/ 27 февраля 2020

Похоже, что существует абсолютная позиция, вызывающая это.

попробуйте что-то вроде ul li {position: unset;}

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