2020.03.06

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の著者ページの記事一覧にカスタム投稿タイプを含める方法を紹介させていただきました。

当サイトではWordPressのカスタマイズ依頼を請け負っています。実現したい機能・要望がある方はぜひ下記ページよりご相談ください。

あなたのサイトに理想の機能を実装!WordPressカスタマイズサービス

本サービスはあなたのWordPressサイトに理想の機能を実装するサービスとなります。 どのような機能・要望でも実現可能です! Wo......

→この記事を読む