代码之家  ›  专栏  ›  技术社区  ›  catandmouse

如何在Wordpress中按“年”然后按“月”显示“归档”小部件布局(侧栏)?

  •  0
  • catandmouse  · 技术社区  · 7 年前

    我正在边栏存档中使用默认小部件,当前以以下方式显示存档:

    Mar 2018
    Feb 2018
    Jan 2018
    

    但是,我希望它以这种方式显示:

    2018
    March
    February
    January
    
    2017
    December
    November
    October
    

    其中月份是链接。我如何做到这一点?我该如何处理侧边栏。php文件?

    1 回复  |  直到 7 年前
        1
  •  0
  •   catandmouse    7 年前

    我找到了答案,就用这个 侧栏。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; ?>  
    

    根据您的喜好进行设计。