次はページ遷移先のカスタマイズページ遷移先ではURLにsearchqueryパラメータがある場合とない場合で枝分かれさせます。
ない場合は通常表示。ある場合は検索文字を全て検索しハイライト表示させます。
このハイライト処理はPHPよりJSの方が工程が少なく処理も簡単なのでJSで進めます。
ハイライトする方法はbody.innerHTMLですべてのbody内要素を検索文字で検索し、ヒットすれば<hilight></hilight>で囲みます。
これも独自タグです。
下記に簡単なコードを掲載。
const search_query= getPrm('searchquery') || ''; /* getPrmはパラメータを抽出する独自関数 */
if(search_query){/* searchquery'があればsearchQHLへ、なければ何もせず次のステップへ */
const queries= search_query.split(' ');
const sq= queries.join('|');/* 検索文字が複数の場合の処理。正規表現の|使用 */
searchQHL(sq);
}
function searchQHL(sq){
const kw= `([^=])(${sq})`;/* 複数検索用の正規表現作成。([^=])はコード内は検索しない指定 */
const body= document.querySelector( 'body' );
const bodytext= body.innerHTML;
const re= new RegExp(kw,'gi');
body.innerHTML = bodytext.replace( re, '$1<hilight>$2</hilight>');
}