WordPressで年別アーカイブのリストを表示する方法

WordPressで年別アーカイブのリストを表示する方法

WordPressで年別アーカイブのリストを表示する方法
  • シェアしてね♪
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

  • 広告主様募集中
    ワンコインで広告掲載してみませんか?
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

WordPressには、デフォルトで「アーカイブ」というウィジェットが用意されていますが、アーカイブウィジェットでは月別のアーカイブが表示されます。

更新頻度がそんなに高くなく、月別ではなく年別でアーカイブのリストを表示したいこともあるかと思います。そんな時のために、年別アーカイブのリストを表示させる方法をご紹介したいと思います。

スポンサードリンク

WordPressで年別アーカイブのリストを表示する方法

まず、functions.phpに以下を追加します。

functions.php
function get_archives_by_year( $args = '' ) {
global $wpdb, $wp_locale;
$defaults = array (
'post_type' => 'post', //投稿タイプ
'limit' => '',
'format' => 'html',
'before' => '',
'after' => '',
'show_post_count' => false,
'echo' => 1
);
$parse = wp_parse_args( $args, $defaults );
extract ( $parse, EXTR_SKIP );
if ( '' != $limit ) {
$limit = absint( $limit );
$limit = ' LIMIT ' . $limit;
}
$arcresults = (array) $wpdb->get_results(
"SELECT YEAR(ADDDATE(post_date, INTERVAL -3 MONTH)) AS `year`, COUNT(ID) AS `posts`
FROM $wpdb->posts
WHERE post_type = '$post_type' AND post_status = 'publish'
GROUP BY YEAR(ADDDATE(post_date, INTERVAL -3 MONTH))
ORDER BY post_date DESC
$limit"
);
return $arcresults;
}

「post_type」で表示したい投稿タイプを指定します。

年別アーカイブを表示させたい箇所に、以下コードを記述します。

<ul class="year-archives-list">
<?php
$archives = get_archives_by_year();
foreach($archives as $archive):
?>
<li>
<a href="<?php echo home_url() ?>/archives/date/<?php echo esc_html($archive->year) ?>"><?php echo esc_html($archive->year) ?>年</a>
</li>
<?php endforeach; ?>
</ul>

「/archives/date/」のところは、パーマリンク設定に合わせて変更してください。上記は、パーマリンク設定を「/archives/%post_id%」にしている場合の例です。

あとがき

あまり需要ないかもですが、標準の月別アーカイブではなく年別のアーカイブリストを表示させたい場合は、ぜひ参考にしてください。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。