こんにちは、WPホームページ研究所の運営サポートチーム(@WP_LABO)です。
ブログを運営していると「検索結果画面」を投稿のみに絞り込みたい場面があります。公開している固定ページ自体が少なかったり記事メインのコンテンツであれば投稿以外の優先度は下げておきたいですよね。
下記で設定方法をご紹介いたします。
ワードプレスのキーワード検索にカスタム投稿タイプを含まない方法
設定方法はいくつかあるのでそれぞれを解説させていただきますね。
1. 投稿のみに絞る方法
仮にキーワード検索の結果画面から固定ページやカスタム投稿タイプを省くなら投稿だけ指定すればOKです。
//検索結果を投稿のみに絞る
function search_result_filter_only_post($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','search_result_filter_only_post');
2. 投稿と固定ページに絞る方法
もし投稿と固定ページに絞る場合は配列でセット。
//検索結果を投稿と固定ページに絞る
function search_result_filter_post_and_page($query) {
if ($query->is_search) {
$query->set('post_type', array('post', 'page'));
}
return $query;
}
add_filter('pre_get_posts','search_result_filter_post_and_page');
3. 投稿と固定ページと特定のカスタム投稿タイプに絞る方法
同じ書き方でカスタム投稿タイプも指定できます。カスタム投稿タイプは色々な名前があるので「custom」はサンプル例として実際の運用状況に合わせて記述を変更して使ってくださいね。
//検索結果を投稿と固定ページとカスタム投稿タイプに絞る
function search_result_filter_post_page_custom_post_type($query) {
if ($query->is_search) {
$query->set('post_type', array('post', 'page', 'custom'));
}
return $query;
}
add_filter('pre_get_posts','search_result_filter_post_page_custom_post_type');
まとめ
本日は「検索結果に表示するページを指定する方法」をご紹介いたしました。
検索結果に使う「is_search」以外にも投稿一覧で使う「is_archive」があったり状況に応じてクエリーをセットしなおせばワードプレスのテンプレート側に表示させる内容をコントロールすることが可能です。
上記は一例となりますがご希望に合わせてさまざまな出し方にご活用くださいませ。
最新式の無料プラグインを事前公開
WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
→ 改良されたプラグインを確認する