[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です。