work.log

元エンジニアの備忘録的ブログ

WordPressのwp_get_archives関数で月別アーカイブの表示

投稿:

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] で出力できます。

月別アーカイブの表示例

あんまり使い道がなさそうですけど、こんな感じでできました。

デフォルトの表示が気に食わない場合は、オプションを足してカスタマイズしたりすといいかもですね。