WordPress で「任意の場所」に月別アーカイブを出力するメモ書きです。
標準だとサイドウィジェットのパーツに「月別アーカイブ」を出力するのがありますけど、任意のページではどうやるんだろうと思いちょっと試しました。
結論から言うと wp_get_archives 関数で簡単に出力出来る様子。
そのままだと何かと不便なので、これをショートコード化してみます。
function monthly_archive_code() { $archive = "<ul>\n"; $archive .= wp_get_archives( 'type=monthly&show_post_count=true&echo=0' ); $archive .= "</ul>\n"; return $archive; } add_shortcode( 'monarchive', 'monthly_archive_code' );
こんな感じに、「月間」「投稿数を表示」というオプションを関数に渡しています。
echo は返り値をそのまま出力するか、データとして受け止とるかのオプションです。ショートコードにする場合、一回変数で受け取ってからデータを返さないと変な場所に出力されてしまうのでこうします。
また、ul 要素が付いてこないので自分で足しています。
後は、表示したい場所に [monarchive] で出力できます。
月別アーカイブの表示例
- 2023年1月 (1)
- 2022年12月 (2)
- 2020年1月 (3)
- 2019年12月 (1)
- 2019年11月 (2)
- 2019年10月 (2)
- 2019年3月 (6)
- 2019年2月 (3)
- 2019年1月 (1)
- 2018年5月 (2)
- 2018年4月 (2)
- 2017年10月 (2)
- 2017年9月 (2)
- 2017年3月 (2)
- 2017年2月 (1)
- 2017年1月 (3)
- 2016年9月 (1)
- 2016年7月 (1)
- 2016年2月 (1)
- 2015年12月 (1)
- 2015年9月 (2)
- 2015年3月 (1)
- 2015年2月 (1)
- 2015年1月 (3)
- 2014年11月 (1)
- 2014年10月 (4)
- 2014年9月 (1)
- 2014年8月 (6)
- 2014年7月 (8)
- 2014年6月 (9)
- 2014年5月 (6)
- 2014年4月 (11)
- 2014年3月 (13)
- 2014年2月 (6)
- 2014年1月 (13)
- 2013年12月 (6)
- 2013年11月 (2)
- 2013年10月 (12)
- 2013年9月 (5)
- 2013年8月 (10)
- 2013年7月 (15)
- 2013年6月 (6)
- 2013年5月 (19)
- 2013年4月 (7)
- 2013年2月 (4)
- 2012年11月 (2)
- 2012年10月 (1)
- 2012年7月 (1)
- 2012年6月 (3)
- 2012年4月 (3)
あんまり使い道がなさそうですけど、こんな感じでできました。
デフォルトの表示が気に食わない場合は、オプションを足してカスタマイズしたりすといいかもですね。