Ownedmedia ウェブ制作に役立つコンテンツを発信中!

WordPress 2018.05.16

投稿者ユーザーアーカイブテンプレートをカスタム投稿に対応させる

Tags: ,

先日、WordPressのクライアント案件でカスタム投稿を投稿者アーカイブさせるご要望がありました。WordPressで投稿者アーカイブのテンプレートには「author.php」のファイルを使いますが、デフォルトでは通常の投稿タイプにしか対応していないようです。そこで少し改修を加える必要がありましたので、備忘録として残しておきたいと思います。

 

方法としてはシンプルに下記のコードをfunctions.phpに記述する形になります。それ以外は特に何も必要ありませんでした。

【functions.php】

function author_search_filter($query) {
  if (is_author() && $query->is_main_query() ) {
   $query->set( 'post_type', array( 'カスタム投稿タイプ' ) );
  }
}
add_action( 'pre_get_posts','author_search_filter' );

 

上記ではアーカイブで出力される内容を設定しています。条件として投稿者アーカイブであることを指定し、クエリの対象を任意のカスタム投稿タイプに配列内に追加します。

 

ちなみに、複数のカスタム投稿タイプを指定することも可能ですし、通常投稿とカスタム投稿タイプを組み合わせることも可能です。いずれも投稿タイプのスラッグを配列内で指定していく形になります。使う場面は限定的ですが、覚えておくと便利な方法ですね!

 

(参考)
プラグイン API/アクションフック一覧/pre get posts

この記事を書いた人

オガワ シンヤ

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

  • Twitter

コメントフォーム

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。

内容に問題なければ、お名前・ハンドルネームとメールアドレスを入力いただき、下記の「コメントを送信」ボタンを押してください。

CAPTCHA


この記事もよく読まれています

Scroll to Top
ご質問・ご相談はありませんか ?