MENU

カスタム投稿タイプやタクソノミーも 検索対象に含める 『WP Extended Search』

2020 6/01
目次

functions.phpを編集してカスタム投稿タイプを検索結果に含める

WordPressのサイト内検索で、検索結果にカスタム投稿タイプを含める一番簡単な方法は、GitHubで紹介されている下記のコードをfunctions.phpに追記することです。プラグインは不要です。

How to add search functionality on custom post type in WordPress

上記のやり方が上手くいかない場合は、こちらのサイトを参考にして下さい。

How to include Custom Post Type in WordPress Search Result?

Qiitaでも同様の方法が紹介されています。
【wordpress】サイト内検索でカスタム投稿を含める

LION MEDIA、LION BLOGを使用している場合

無料テーマ・テンプレート LION MEDIA や LION BLOG を使用している場合、親テーマのfunctions.php から、下記の部分をコメントアウトするか、削除して下さい。

テーマ・カスタマイザーの「検索機能の検索対象」の機能をコントロールしているコードです。

この記述がある限り、上記のコードを追記しても正しく動作しません。

LION MEDIA 検索結果のカスタマイズ

//////////////////////////////////////////////////
//検索対象をPOSTに限定
//////////////////////////////////////////////////
function fit_search_filter($search) {

if ( get_option('fit_theme_search') == 'value2' ) {
if(is_search()) {
$search .= " AND post_type = 'post'";
}
return $search;
}elseif ( get_option('fit_theme_search') == 'value3' ) {
if(is_search()) {
$search .= " AND post_type = 'page'";
}
return $search;
}else{
if(is_search()) {
$search .= " AND (post_type = 'post' OR post_type='page')";
}
return $search;
}
}
add_filter('posts_search', 'fit_search_filter');

なお、検索対象を、カテゴリー、タグ、抜粋など、幅広く設定したい場合は、プラグインが便利です。

プラグイン『WP Extended Search』を使う

functions.phpの直接編集が不安な方、タクソノミーなども含めて全文検索を可能にするなら、プラグイン『WP Extended Search』がおすすめ。

同様の全文検索プラグインといえば『Search Everything』が有名で、こちらはコメントや抜粋、下書きやカスタムフィールドまで検索可能ですが、あまりに検索対象を広げると、関連のない投稿までずらずら表示されて、かえって訪問者の負担になるので、単純に記事に絞り込んで横断検索するなら、WP Extended Searchの方が軽くて便利です。

WP Extended Search

検索対象の設定

・ タイトルのみ、コンテンツのみ
・ タイトル+コンテンツ(全文)
・ メタキー
・ カテゴリー
・ タグ(タクソノミー)
・ カスタム投稿タイプ

検索条件の設定

General Search Setting
検索対象を設定。タイトルのみ、コンテンツのみ、タイトル+コンテンツは好みで。

Select Meta Key Names
検索対象に含めたいメタキーの名前を選択。カスタムフィールドに商品名などを設定されている方は便利ですね。
WP Extended Search 検索対象 設定

Select Taxonomies
検索対象に含めたいタクソノミー名を選択。タクソノミーのアーカイブではなく、指定したタクソノミーを有する記事が対象になります。
WP Extended Search 検索対象 設定 タクソノミー

Select Post Types
検索対象に含めたいカスタム投稿タイプを選択。
WP Extended Search 検索対象 設定  カスタム投稿タイプ

Author Setting
検索対象に著者を含めたい場合は、チェックをONに。複数で運営しているサイト向け。
WP Extended Search 検索対象 著者名

Terms Relation Type
複数の単語を入力した場合、AND検索か、OR検索か、選択できます。

Select date to exclude older results
検索対象に含める日時を限定する場合、
膨大なアーカイブを有して、数年前の記事は検索対象から外したい場合に便利。

Posts per page
1ページに何件の検索結果を表示するか。空欄の場合、デフォルトのアーカイブの件数が表示されます。
WP Extended Search 検索設定

こんなサイトには不向きです

・ 複数管理で、膨大な記事数を有する(かなり正確に全文検索するので、検索語によっては、ものすごい数の結果が表示される)
・ パスワード保護、非公開、メンバーオンリーなど、各記事に細かなアクセス制限が設定されている。
 (記事IDで除外する機能がないので、複雑なサイトには不向き。
・ サイト内検索の数が多い
 (一日に何百回とサイト内検索される大規模サイトには不向き)

このプラグインは、どちらかといえば、個人サイト向けです。

大規模サイトなら、Ajaxを使ったライブサーチ系のプラグインをおすすめします。

SearchWP Live Ajax Search
Googleの検索窓のように、検索語を入力したら、その場でサーチを開始し、その他の候補も表示します。

Ajax Search Lite

こちらも上記と同様、入力と同時に検索を開始し、その他の候補を一覧表示してくれる高機能な検索ツールです。

Ajax系は、一日に何十~何百回とサイト内検索されるメガサイトや商用サイト向きですね。

個人には過剰かもしれません。

Ajax系ではないですが、あいまい検索、マルチサイト横断など、さらに細かなカスタマイズが必要なら、『Relevanssi – A Better Search』がおすすめ。

有料版なら、PDFドキュメント、ユーザープロフィール、サジェスト機能、など、さらに機能拡張が可能です。

Googleカスタム検索のボックスを設置する

サイト内にGoogle検索を導入したい方は、『WP Google Search』がおすすめ。

IDを取得するだけで、ウィジェットで簡単に検索ボックスを設置できます。

WP Google Search

設定画面にもリンクが表記されていますが、こちらからアクセスして、『新しい検索エンジン』を追加します。

サイト内検索にフォーカスする場合は、自サイトのドメインを入力します。

新しい検索エンジンの追加

検索エンジンIDを取得します。ずらずらと英数字で生成されます。

検索エンジンIDの取得

プラグインの設定画面に戻って、検索エンジンIDを入力。
必要なオプションにチェックを入れます。

CSSのデフォルト修正は、自サイトでどのように表示されるか確認しながら調整して下さい。

検索ボックスの設定

あとは、フッターやサイドバーなど、必要な場所にウィジェットを挿入するだけです。
プラグイン『Widget Option』を併用すれば、必要なページにだけ検索ボックスを表示することができるので、ページ読み込みの負担を減らすことができます。

ウィジェットの設定

実際の動作については、当サイトのフッター、もしくはトップページに設置しているGoogleカスタム検索を試して下さい。

※ Googleカスタム検索ボックスは、プラグインを使わなくても、Googleの生成する埋め込みコードをコピペすれば好きな場所に設置できるのですが、お使いのテーマ・テンプレートによってはデザインが大きく崩れたり、scriptが上手く動作しなかったり、狙い通りにいかないこともありますので、楽に、綺麗に、カスタム検索ボックスを設置したい方におすすめです。

THE Thorのヘッダーの検索ボックスを削除する

テーマテンプレート『THE THOR』で、ヘッダーの検索ボックスが邪魔に感じている方は、header.php から form ごと、ばさっと削除すれば消えます。

div class="searchHead__search の続き、 <form>~</form> で囲まれた部分です。

精度がいい加減で、まったく検索の役に立たないので、削除したい方は試してみて下さい。

消しても、特に問題はないです。

検索ボックスを削除

目次
閉じる