検索語句を表示する

wordpressの検索結果ページ(search.php)に検索に使われた語句を表示してみる。プラグインとかは使わないで、phpのsplit関数とurldecode関数を使ってやることにする。

検索フォームに検索語句を入力し、検索結果ページを表示したとき、その情報はhttp環境変数のQUERY_STRINGを参照することで取得できる。wordpress検索語句の場合は s=%E3%83%86%E3%82%B9%E3%83%88 というような形式で収められている。この’s=’より後の部分が検索に使われた検索語句であるため、その部分を取り出し、urlデコードをかけることで、検索語句を取得することができる。下記にコードのサンプルを参考までに。

サンプル

<?php
  //環境変数から検索に使われた文字列を取り出し。
  $str = $_SERVER["QUERY_STRING"];

  // =で分割して配列に格納する。
  $array = split("=",$str);

  // 配列の1番目をurldecodeして表示する。0番目にはsがあるはず。
  print(urldecode($array[1]));
?>

(余談:この方法はhttpの環境変数から取得して検索語句を取り出している。したがって、環境変数に検索語句が格納されていない場合は当然表示されない。googleなどでインデックスされたページには、なぜかwordpresの検索結果のページが検索結果として表示される(まぎらわしい表現だが)。そういう場合の検索語句も表示したい場合は、javascriptを使って現在表示されているurlを取得→split→urldecodeという流れでやれば、同じようにできる。私はやらない。面倒だから。あくまでもサイト内で検索をした結果の、そのときに使った検索語句を表示することが重要だと思っているので。)

“検索語句を表示する” への 1 件のフィードバック

  1. ピンバック: WordPressとか

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)