2016
10
14

WordPressの月別アーカイブをプラグインを使わずにコンパクトにする

wp_get_archives() 関数だとずらっと並んでしまう月別アーカイブを、プラグインなしで1年1行ずつコンパクトに出力する方法のメモです。


こんな形に

よくある形でこのように書くと、

161014-1

図左のように下にながーくなってしまうのですが、これを図右のような形に、プラグインを使わずに実装してみます。

先日までこのプラグインを使わせてもらっていたのですが、別目的で作った関数を使って実装できることに気づいたので、もったいないと思って自分で書くことにしました。

でも、月を英字にもできるし、シンプルでわかりやすいプラグインです。PHP苦手だったら無理せずとも、上記のプラグイン、お勧めです。

実装

目指すHTML

こういう形のHTMLを出力するためのPHPを書きます。

定義リストにしてみました。現在の年から一番古い投稿の年まで、年月アーカイブにリンクさせます。投稿がないところはただのテキストです。

functions.php

それではここから実際に書くコード。functions.phpでは、こちらの記事に書いたのと同じものを使います。

指定した年の投稿数、指定した年月の投稿数、それと一番古い記事の投稿年を取得する関数です。

任意のテンプレートファイル

上の関数を使って、アーカイブリストを出したい場所に以下を書きます。

14, 16行が年、24, 26行が月を生成しているところです。月を数値じゃなくてJanとかにすることもやろうと思えばできますが…。もしリクエストがあるようならやりますのでコメントくださいw

CSS

1年で1行になるように並べます。あとはお好みで。以上ですー!

  • このエントリーをはてなブックマークに追加
  • follow us in feedly 618
  • RSSを登録

公開日:2016/10/14


コメントを残す




*印は必須項目です。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にですがスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)


back to top