Ownedmedia ウェブ制作に役立つコンテンツを発信中!

WordPress 2017.07.30

キーワード検索でカスタマイズした検索機能を実装する

Tags: ,
最終更新日:Update

WordPressサイトで便利なキーワード検索ですが、コードをカスタマイズすることで検索条件などもコントロールすることができます。また合わせて検索結果にもユーザーにわかりやすい表示サンプルを見ていきたいと思います。

 

検索外対象のページを指定する

検索結果に表示させたくない投稿ページがある場合には下記のような関数をfunctions.phpに追記することで実装できます。

【functions.php】

function SearchFilter($query) {
    if ( !is_admin() && $query->is_main_query() && $query->is_search() ) {
      $query->set( 'post__not_in', array(****,****,****) ); // 検索対象外とするページのIDを入力
     }
}
add_action( 'pre_get_posts','SearchFilter' );

 

 

検索結果と合わせて検索時のキーワードと件数を表示させる

検索結果に加えて検索時に入力したキーワードと、トータルの検索結果件数も合わせて表示させることでユーザビリティが向上します。検索結果を表示させるページテンプレートであるsearch.phpのクエリに下記のように追記します。

【search.php】※ループ部分のみ

<?php
    $allsearch = new WP_Query("s=$s");
    $key = esc_html($s, 1);
    $count = $allsearch->found_posts;
    $countSum = $wp_query->found_posts;
    if($count!=0){
    // 検索結果を表示:該当記事あり
        echo '<p>「<strong>'.$key.'</strong>」で検索した結果、<strong>'.$countSum.'</strong>件の記事が見つかりました。</p>';
    } else {
    // 検索結果を表示:該当記事なし
        echo '<p>「<strong>'.$key.'</strong>」で検索した結果、関連する記事は見つかりませんでした。</p>';
    }
?>
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<div>
    <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
    <p><?php the_excerpt(); ?></p>
    <a href="<?php the_permalink(); ?>">この記事を見る</a>
</div>
<?php endwhile; endif; ?>

 


 

このようにクエリを変更することで検索結果もコントロールすることができます。また検索件数などの表示など、細かいところもユーザビリティ向上のポイントになるのではないでしょうか。

この記事を書いた人

オガワ シンヤ

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

  • Twitter

コメントフォーム

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。

内容に問題なければ、お名前・ハンドルネームとメールアドレスを入力いただき、下記の「コメントを送信」ボタンを押してください。

CAPTCHA


この記事もよく読まれています

Scroll to Top
ご質問・ご相談はありませんか ?