WordPressで投稿者別の日別、月別、年別アーカイブ一覧を表示させたい

カスタム

wpphp_archive_author

WordPressにはたくさんの便利な関数がありますが、
その中に月別の投稿一覧リンクを表示させる関数 wp_get_archives() があります。

この関数には投稿者別に分ける機能は付いていませんが
投稿者別のアーカイブリンクを表示できるようにする方法を紹介します。

テーマ内に functions.php を用意する

現在使っているテーマの「functions.php」を用意します。
無ければ「functions.php」をテーマフォルダ内に作成します。

functions.php にメソッドを追加する

下記メソッドを追加することで wp_get_archives() の条件に記事の投稿者を追加できます。

<?php 
// アーカイブで投稿者別に取得できるようにする
function author_archives($where, $args)
{
	global $wpdb;
	$author = $args['author'];
	$where .= " AND post_author = '$author'";
	return $where;
}

add_filter('getarchives_where', 'author_archives',10,2);
?>

テーマに反映してみる

実際に関数を使ってみましょう。

<?php 
// 投稿者IDが1の月別アーカイブを表示する
$author_id = 1;
wp_get_archives('type=monthly&author='.$author_id.'&show_post_count=1');
?>

引数「author」が追加されているので、これで投稿者別のアーカイブリンクが
表示できるようになりました!

カスタム

関連記事