【WordPress】リッチリザルト対応サイト内検索設置方法

最終更新日: 公開日: 2021年01月

サイト内検索を設定したのだが,ついでにリッチリザルト対応のサイトリンク検索ボックスにもしたので,役に立つこともあるだろうと備忘録としてまとめておく.


サーチコンソールに現れるサイトリンク検索ボックス

リッチリザルト対応のサイトリンク検索ボックスとは

サイトリンク検索ボックスとはなにかというと,Google で検索した結果のサマリーの中に表示されるそのサイトのサイト内検索ボックスのことである.
つまり,これも検索結果を豪華なものにするリッチリザルトの一種である.
他のリッチリザルト同様,目立つし,便利なものであるのでサイト内検索が存在するサイトであれば使うに越したことはない.

必要なもの

search.php
searchform.php

これだけ.

サイト内検索サンプルコード

検索フォーム

検索フォームに関しては以下のコードを searchform.php という名前でファイルを作る.

サイトリンク検索ボックスは,スキーマとしては
https://schema.org/SearchAction
を使う.

<div itemscope itemtype="https://schema.org/WebSite">
  <meta itemprop="url" content="<?php echo esc_url(home_url('/')); ?>"/>
  <form itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction" method="get" id="searchform" action="<?php echo esc_url(home_url('/')); ?>">
    <meta itemprop="target" content="<?php echo esc_url(home_url('/')); ?>?s={s}"/>
    <input itemprop="query-input" type="text" name="s" id="s" placeholder="<?php if(!is_search()){ echo 'キーワード';} ?>" value="<?php if(is_search()){ echo get_search_query();} ?>"/>
    <button type="submit">ブログ内検索</button>
  </form>
</div>

そして,

<?php get_search_form(); ?>

を single.php など入れたいテンプレートの表示したい場所に挿入すればよい.

検索結果ページ

search.php はテーマに入っていると思うので,それを使えばよい.
抜粋すると以下のようになる.

get_search_form() も入れている.

<?php
  if (isset($_GET['s']) && empty($_GET['s'])) {
    $title = '';
  } else {
    $title = '「'.$_GET['s'] .'」の';
  };
?>
<h1><?php echo $title . '検索結果'; ?></h1> <!-- 記事タイトルを表示 -->
<?php get_search_form(); ?>
<?php if (have_posts()): ?>
<h2><?php
if (isset($_GET['s']) && empty($_GET['s'])) {
  echo '検索キーワード未入力';
} else {
  echo '「'.$_GET['s'] .'」の検索結果: '.$wp_query->found_posts .'件'; // 検索キーワードと該当件数を表示
}
?></h2>
<ul>
  <?php while(have_posts()): the_post(); ?>
  <li>
    <a href="<?php the_permalink(); ?>"><?php echo get_the_title(); ?></a>
    <div>
      <?php echo get_the_excerpt(); ?>
    </div>
  </li>
<?php endwhile; ?>
</ul>
<?php
// Previous/next page navigation.
$paginationhtml = get_the_posts_pagination( array(
  'prev_text' => '前のページ',
  'next_text' => '次のページ'
));
echo preg_replace('/<h2 class="screen-reader-text">[^<]*<\/h2>/ui', '', $paginationhtml);
?>
<?php else: ?>
検索されたキーワードにマッチする記事はありませんでした
<?php endif; ?>

リッチリザルトテスト

埋め込んだ後は下記URLでテストするのを忘れないようにする.
リッチリザルトテスト(google)

 

Contact

ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.

 
   
Chrome 拡張機能 PageSpeed Insights SEO WordPress Youtube お問い合わせフォーム アナリティクス アンケートフォーム サーチコンソール セミナー タグマネージャー データベース ヒアリング プラグイン ページ閲覧解析 マーケティング メール配信 リッチリザルト レスポンシブ対応 ログ解析 勉強会 商品企画 営業 営業力 営業支援システム 実装 検索順位 検索順位チェックツール 追跡 開発者ツール
contact
Pagetop