WordPressの著者ページの記事一覧にカスタム投稿タイプを含める方法

こんにちは、webエンジニアのゾノ( @ozonosho )です。

今回のブログではWordPressの著者ページの記事一覧にカスタム投稿タイプを含める方法を紹介したいと思います。

WordPressの著者ページ(author.php)の標準仕様は、通常の投稿データ(=投稿タイプが「post」のデータ)しか抽出されない作りになっています。しかしながら実際の運営では投稿データをいくつかの投稿タイプに分けて管理することも多いため、著者ページにカスタム投稿タイプの記事も抽出したいケースがあると思います。

僕の運営するサイト『未来地図』でも、スタッフの方が投稿する記事は「コラム用(投稿タイプ:post)」「ノウハウ用(投稿タイプ:knowledge)」の2つがあるため、今回の処理を加えてみました。

▽実際に2つの投稿タイプの記事一覧を表示した著者ページ

WordPressの著者ページの記事一覧にカスタム投稿タイプを含める方法

実装は簡単で、functions.phpに下記のコードを追加してください。

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

「投稿タイプ1」「投稿タイプ2」と記載されている箇所に、取得したい投稿タイプを入れて使います。僕のサイトだと「コラム用(投稿タイプ:post)」「ノウハウ用(投稿タイプ:knowledge)」の2つの記事を取得したかったので、下記のコードになります。

function custom_pre_get_posts($query) {
  if(is_admin() || !$query->is_main_query()) {
    return;
  }
  if($query->is_author()) {
    $query->set('post_type', array('post', 'knowledge'));
  }
}
add_action('pre_get_posts', 'custom_pre_get_posts');

指定する投稿タイプはカンマ区切りでいくらでも増やせるので、取得したい記事の投稿タイプにあわせて自由に使うことができます。

この処理では、テンプレートファイルが読み込まれる際に取得される大元のデータ(メインクエリー)の取得ロジックを書き換えるためのアクションフック「pre_get_posts」を利用しています。

pre_get_postsを利用すればアーカイブページの表示内容を制御できたり検索機能をつくれたりと便利なことがたくさんあるので、興味ある方はぜひお試しください(*´`)

おわりに

以上、今回の記事ではWordPressの著者ページの記事一覧にカスタム投稿タイプを含める方法を紹介させていただきました。

つくりばのことが気になりましたか?

つくりばは、ココトモ・未来地図を自社で10年以上運営してきた知見をもとに、相談・コミュニティの開発と運営を支援しています。いきなりのご相談でなくて大丈夫です。まずは私たちの実績や考え方をご覧ください。

つくりばについて知る

← WordPressの一覧へ戻る

Webサービスの課題を、まずは無料相談で整理しませんか。

既存サービスの改善、新規立ち上げ、運用サポート、予算内での優先順位づけなど、今の状況に合わせてじっくりお話を伺います。まだ形になっていない段階のご相談も大丈夫です。

  • videocamオンライン対応
  • forum課題整理だけでも歓迎
  • payments概算費用の目安がわかる
無料相談を申し込む