ミギムキ

[WordPress] 検索対象を特定のカスタム投稿だけに絞り込みたい

WordPressの検索結果ページはデフォルトでは全ページが対象になっています。
製品情報など、特定のページのみに検索対象を絞り込みたい場合は、下記のようなコードで実現できます。

サンプルコード

// 検索対象の絞り込み function filter_search_query($query) { if($query->is_search) { $query->set('post_type', array('xxx', 'yyy', 'zzz')); } return $query; } add_filter('pre_get_posts', 'filter_search_query');

記事を表示する前に実行されるフィルターフック「pre_get_posts」を利用して関数を実行し、表示する投稿タイプの絞り込みを行っています。

実行中のクエリが検索結果ページ用のものであれば、「post_type」に表示対象とする投稿タイプのスラッグを設定しています。

ご質問など受け付けています

記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。

ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。