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

ラップトップ コンピュータ
  • URLをコピーしました!
目次 🏃

WP Extended Searchについて

お使いのテーマ・テンプレートによっては、カスタム投稿タイプが検索結果に含まれないことがあります。

また、カスタムフィールドを積極的に使用しているサイトの中には、メタデータに記述した商品名、機能、サービス詳細などを検索結果に反映したいケースもあるでしょう。

プラグイン『WP Extended Search』は、通常の投稿(post)や固定ページ(page)の他、抜粋、ターム、メタデータなども検索対象に含めることができます。

操作も簡単で、functions.phpなどの難しい記述も不要です。

初心者にも、上級者にもおすすめの人気プラグインです。

WP Extended Search
https://ja.wordpress.org/plugins/wp-extended-search/

WP Extended Search インストール

基本の設定

プラグインを有効化すると、左側メニューに、『WP Extended Search』のアイコンが表示されます。

基本の設定は、『Search Settings』を選択します。

WP Extended Search

グローバル設定

『Global』は全体設定です。

サイト全体に機能する、全文検索の対象を設定します。

Search in Title (タイトル)
Search in Content (本文)
Search in Excert (抜粋)

私の経験として、抜粋は含めない方がいいと思います。
ジャンルによっては、検索結果が増多し、かえって訪問者を混乱させるので。

WP Extended Search 一般設定

メタキーも含める

カスタムフィールドのメタキーも検索対象に含める場合は、メタキーの名前を設定します。

Select Meta Key Name

たとえば、当サイトで使用している『SWELL』には「広告パーツ」というカスタム投稿タイプが標準装備されており、広告を作成すると、広告名は『ad_name』というメタキーの値として格納されます。

商用サイトの場合、カスタムフィールドを使って、『靴』『傘』『バッグ』などを設定している場合、それらも検索結果に含めることができるので、商品検索に便利ですね。

小説サイトやレビューサイトでも、ある特定のジャンルについて、メタキーで分類している場合は、用途が広がると思います。

WP Extended Search メタキーを検索結果に含める

タクソノミーも含める

カスタムタクソノミーも検索結果に含める場合は、一覧から選択します。

この場合、タクソノミー名が検索対象となります。

WP Extended Search カスタムタクソノミーも検索結果に含める

カスタム投稿も含める

検索結果にカスタム投稿を含める場合。

Select Post Type

検索結果に含めたいカスタム投稿タイプの名前を選択します。

WP Extended Search カスタム投稿タイプを検索結果に含める

検索機能のカスタマイズ

検索機能を細かくカスタマイズします。

Miscellaneous Setting

・ Term Relation Type ・・ 検索ワードの区切り方。 AND/OR

・ Match the search term exactly ・・ 検索の精度。大文字・小文字など、あいまい検索する場合は『Yes』で。

・ Post Per Page ・・ 一度に表示する検索結果の数

・ Search Results Order ・・ 検索結果の返し方。関連順の高いもの(Revernt)、タイトル別、スラッグ別など、細かいカスタマイズが可能です。

WP Extended Search 詳細な設定

・ Select date to exclude older results

指定日時より古い投稿は、検索結果から除外します。

ニュースサイトでの投稿の表示 / 非表示コントロールに便利ですね。

WP Extended Search カレンダー 日付より前の日は検索結果に表示しない

特化型の検索機能を有効にする

あるジャンルに特化した検索機能を実装することもできます。

左メニュー『Setting Names』を開いて、『新規追加』をクリックします。

たとえば、当サイトでは小説『カラマーゾフの兄弟』に関する分類(タクソノミー)が存在するので、下図のように設定します。

WP Extended Search 特化型検索の作成

設定した検索ボックスは、ショートコード、もしくは、PHPテンプレート・タグでサイトに表示することができます。

ウィジェットを使った場合、下図のようにサイドバーに表示できます。

WP Extended Search サイドバー カスタム検索

ショップサイトはもちろん、小説やレビューサイトで、登場人物や映画監督など、特に絞り込んでアピールしたい場合にも便利ですね。

プラグイン『Widget Options – Add Context To WordPress Widgets』のような条件分岐を使って、特定のカテゴリー記事だけ、特化型検索ボックスを表示する仕様にすれば、ユーザーさんの負担にもならず、特定の項目について印象づけることができます。

Full-Text Search プラグイン

日本の開発者による日本語対応の全文検索プラグイン『Full-Text Search』も面白そうです。

開発者の石鷹さんは、『未添付の画像ファイルをワンクリックで再添付&削除する『Associate Attachment』』でお世話になりましたので、こちらのプラグインにも注目しています。

私の方はまだテスト環境で試していませんが、ドキュメント内の検索にも対応しているので、PDFやWord文書などを公開されている方は試してはいかがでしょうか。

石鷹さんのXacroブログ
https://xakuro.com/wordpress/full-text-search/

WordPress公式
https://ja.wordpress.org/plugins/full-text-search/

日本語対応の全文検索プラグイン Full-Text Search

他にも痒いところに手が届くプラグインを公開されてますので、興味のある方はぜひ。

functions.phpの記述

タイトルと本文メインの検索であれば、functions.phpの記述でもOK。

query set の custom_post_type をカスタム投稿タイプのスラッグに書き換えます。

function include_cpt_search( $query ) {

if ( $query->is_search ) {
$query->set( 'post_type', array( 'post', 'page', 'custom_post_type' ) );
}

return $query;

}
add_filter( 'pre_get_posts', 'include_cpt_search' );

参考 How to include Custom Post Type in WordPress Search Result?

もしくは、こちらを参考に。

下記の記述は、in_admin (管理者)の検索にも対応しています。

カスタム投稿タイプが複数存在する場合は、

$query->set('post_type', array('news','movie','book'));

のように追記すればOK。

// Search Filter
add_filter('pre_get_posts','rusty_search_filter');
function rusty_search_filter($query) {
if (!is_admin() && is_page('news')) {
if ($query->is_search) {
$query->set('post_type', array('news'));
}
return $query;
}
}

参考 How to add search functionality on custom post type in WordPress

誰かにこっそり教えたい 👂
  • URLをコピーしました!
  • URLをコピーしました!

管理人にメッセージを送る

コメントする

目次 🏃