「サイト内検索」ではなく「ページ内検索」の作り方を ご紹介。
検索でヒットした「キーワード」にハイライトを付けて目立たせるようにし、
かつ、最初の該当キーワードへ、スクロール移動させます。
【環境】WordPress – Cocoon Child バージョン: 1.1.3
- 検索結果をハイライト表示する「プラグイン」をインストールする
- 「ページ内検索」用の「ショートコード」を作る
- 記事に「ショートコード」を設定する
- 最初のキーワードへスクロール移動する「おまじない」をカスタムJavaScriptに貼る
![プラグイン](https://clear-sky-world.com/wp-content/uploads/2023/08/e79e7d7c281745667f314ceb80536f46-800x258.png)
1. 検索結果をハイライト表示する「プラグイン」をインストールする
検索キーワードを ハイライト表示する「Highlight Search Terms」プラグインをダウンロードします。
外部プラグインの為、ダウンロードしてWordPressにインストールします。
管理画面の「プラグイン」メニューから「新規追加」を押下。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/323734c953c9057dd06484da37ed2fb3-800x366.png)
遷移先「プラグインを追加」画面の「プラグインのアップロード」ボタンを押下。
![plugin-upload](https://clear-sky-world.com/wp-content/uploads/2023/08/plugin-upload-e1692286460849-800x186.png)
「ファイルの選択」ボタンを押下。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/77dab3cb4452f408059933a37ca2c5f9-800x230.png)
表示されたダウンロードフォルダから、プラグインのZIPファイルを選択。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/096e0b4e788e604726078b9a0f2de869.png)
すると、自動で取り込まれます。
プラグインが有効化されていることを確認してください。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/892a0ff087bc587636d9d730c10dc818-800x362.png)
これで、プラグインのインストールが完了しました。
2. 「ページ内検索」用の「ショートコード」を作る
サイドバーに「検索」(サイト内検索ができる 検索案内)を設置してましたので、
これを真似しようと思います。
![検索窓-サイドバー](https://clear-sky-world.com/wp-content/uploads/2023/08/8daa773779d5848c41f44d2536ab88aa.png)
管理画面の「Cocoon設定」メニューから「テンプレート」を押下。
「新規追加」を押下。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/9e2554e6bf4a6b26cb073accf440d6a6-800x308.png)
「タイトル」は、「ページ内を検索」にしました。
「内容」は、サイドバーの「サイト内を検索」のソースを、開発者ツール(「F12」キー押下)からコピペ。
![ショートコード-ソース](https://clear-sky-world.com/wp-content/uploads/2023/08/61890e22929db5cb51d7e623401e933a-800x331.png)
ソース内の「action」に、サイトのURL(トップページのURL)があったので、
検索させたい対象ページのURLに変更しました。
<変更前>トップページのURL:https://clear-sky-world.com/
<変更後>検索させたいページのURL:https://clear-sky-world.com/mql4-reference/
<form class="search-box input-box" method="get" action="https://clear-sky-world.com/mql4-reference/"> <input type="text" placeholder="ページ内を検索" name="s" class="search-edit" aria-label="input" value=""> <button type="submit" class="search-submit" aria-label="button"> <span class="fa fa-search" aria-hidden="true"></span> </button> </form>
ソースはコピーして使ってください。
「placeholder」は、検索案内の中に最初から表記される文言ですね。
ここも「ページ内を検索」に変更しました。
最後は、忘れずに「保存」ボタン押下してください。
すると新しくショートコードの「id」が振られます。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/29a1490a5b90ace4d41b8999d728756f-800x463.png)
次の工程で使用する為、コピーして 控えておいてください。
3. 記事に「ショートコード」を設定する
記事を作成し、検索案内を挿入したい箇所で「ブロックを追加」押下。
「ショートコード」を選択してください。
候補に存在しない場合は「すべて表示」を押下すれば、出てきます。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/33dc9a24daee458580b92a7c1d9c8a60-800x376.png)
先程、控えておいた ショートコードを入力します。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/ee39bfb1983a92e7fc3a879332fd1394-800x301.png)
プレビューすると、こんな感じ。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/45445c8af8b5dd94c4c0625f8ef4aac6-800x316.png)
あとは、どんどん文章を記載していってください。
但し、このままでは、キーワード検索すると、
検索結果の文字にハイライトが付きますが・・・
画面表示は、ページの先頭へ移動します。
サイト内検索の仕様なので、しかたないですね。
![](https://clear-sky-world.com/wp-content/uploads/2023/09/profile-160-160-e1694409583715.jpg)
それはヤダ。Ctrl + F のように、該当箇所にジャンプしてほしい
4. 最初のキーワードへスクロール移動する カスタムJavaScriptの作成
記事を書いているページの最下行に、「カスタムJavaScript」欄があります。
そのページでだけ優先されるコードが書けるようです。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/f89b660395a11b73825cdf67a04012b9-800x527.png)
カスタムJavaScript欄に、以下のソースをコピーして貼ってください。
window.onload = function() {
var tag = $( "mark:first" );
var offset = tag.offset();
var ypos = offset.top;
window.scrollTo({
left: 0,
top: ypos,
behavior: "smooth"
});
}
簡単に説明すると、
- キーワード検索する
- ハイライト表示する
- ハイライトされた文字を探す(markタグ)
- 一番上のハイライトの位置を特定する
- スクロール移動する
動かしてみよう!
試しに、「point」と入力して、「_Point」をヒットさせたいと思います。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/11d59341bd38700b649306b13241c2be-800x701.png)
検索案内に「point」と入力。
その後、Enterキー押下。または 右端の虫眼鏡アイコンをクリック。
![](https://clear-sky-world.com/wp-content/uploads/2023/08/33c2c2e1e10a82bfcfe40a8fd45cb7ea-800x489.png)
「_Point」の「Point」部分がハイライトになり、自動スクロールされました!
![](https://clear-sky-world.com/wp-content/uploads/2023/08/ed348a96a5a2ff1ca01d535998142b8e-800x350.png)