MENU

WordPressの検索をちょっとだけ思い通りにするコード

2018 2/08

検索対象絞り込みWordPress で検索対象を自分の思うように絞り込みたい時にこの方法はどうでしょうか? 例えば、商品や情報は検索対象にしたいけれど、会社案内や採用情報、あるいはサブコンテンツはヒットさせたくない……という場合です。2箇所ソースの編集が必要ですが、考え方も編集そのものもとても簡単なので、大いに活用の道があると思います。

まず、検索対象にしたい記事はすべて「投稿(post)」で書いておきます。

[1] コードにちょっとおまじない
wp-includes/query.php の1652行目当たりにある下記のコードを編集(◆=デフォルトは空 → post とする)。

if ( $this->is_search )
$q['post_type'] = 'any';
else
$q['post_type'] = '◆';

  ▼

if ( $this->is_search )
$q['post_type'] = 'any'; // === HERE
else
 $q['post_type'] = 'post';

[2] カテゴリの絞り込み
特定のカテゴリのみ検索対象にしたい時や、特定のカテゴリのみ除外したい時など、サイトの内容に合わせてどちらかを使う。

特定のカテゴリを検索対象から除外する時▼

<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
<input type="hidden" value="-7,-8,-11" name="cat" />

特定のカテゴリのみ検索対象にする時▼

<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
<input type="hidden" value="4,5,6" name="cat" />
目次
目次
閉じる