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

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」が追加されているので、これで投稿者別のアーカイブリンクが
表示できるようになりました!
関連記事






