[WordPress(ワードプレス)]年別で月別アーカイブリストを表示

任意のカテゴリでのみアーカイブリンクを表示したいときってありますよね。
基本的にはwp_get_archivs() で年毎や月毎で表示することができますが、今回は以下のように表示をしたかったので、
いろんな方のブログを参考に、コピペで対応できるようなソースを備忘録として残しておくことにします。

See the Pen archive_sample by sayuri (@giraffeweb) on CodePen.0

ソースはこちら↓↓↓↓↓↓↓

<?php
$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){?>
            </ul></div>
        <?php } ?>
<div><h4><?php echo $month->year; ?>年</h4>
<ul>
    <?php } ?>
    <li>
        <a href="<?php bloginfo('url') ?>/date/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>">
            <?php echo date("n", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>月
            (<?php echo $month->post_count; ?>)
        </a>
    </li>
    <?php $year_prev = $year_current;
    endforeach; ?>
</ul></div>