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

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

最終更新日:2020.3.8 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; ?>
 
  このようにクエリを変更することで検索結果もコントロールすることができます。また検索件数などの表示など、細かいところもユーザビリティ向上のポイントになるのではないでしょうか。
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

SPONSORED

    KEYWORD SEARCH

    RECENT POSTS

    合同会社デザインサプライ -DesignSupply. LLC-

    サイト制作・開発 / 各種デザイン制作 / ウェブプロモーション企画

    合同会社デザインサプライ(DesignSupply. LLC)

    Office:大阪府大阪市天王寺区清水谷町3-22
    Email:info@designsupply-web.com
    • Twitter
    • Github
    CONTACT USSCROLL TO TOP
      • Facebook
      • Twitter
      • Github
      • Instagram