[WordPress]カスタム投稿タイプの記事もauthor.phpに含ませる方法

WordPressのauthor.phpは、デフォルトだと通常の投稿のみ表示されて、カスタム投稿タイプの記事は対象になりません。

有料テーマとかでよくある「この記事を書いた人」の記事一覧が表示されないのはおそらくこの現象です。

改善方法は簡単で、下記のコードをfunction.phpに書き込み’投稿タイプ1’と’投稿タイプ2’を自分が設定したカスタム投稿タイプの名前にするだけ。

function cpt_pre_get_posts($query) {
  if(is_admin() || !$query->is_main_query()) {
    return;
  }
  if($query->is_author()) {
    $query->set('post_type', array('post', '投稿タイプ1', '投稿タイプ2'));
  }
}
add_action('pre_get_posts', 'cpt_pre_get_posts');

‘pre_get_posts’というクエリが実行される前に処理をおこなうアクションフックを使っています。
もし通常の投稿は対象としない場合は

$query->set('post_type', array('post', '投稿タイプ1', '投稿タイプ2'));

$query->set('post_type', array('投稿タイプ1', '投稿タイプ2'));

としてください。

終わりに

CPT UIでカスタム投稿タイプを設定していて、著者ページにカスタム投稿タイプで作った記事が表示されませんでした…
これで1時間ぐらい悩んでたら下記の記事に出会い、救われました。感謝です!

この記事を書いた人

keishiro

こんにちは、板川恵司朗です。