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