Webは用いる人のリテラシーで決まる ウェブ運用と開発現場を経験したエンジニアのTIPS
TOP > BLOG > IT記事

WordPressのサイト内検索でキーワードを取得する方法

早川朋孝 早川朋孝
EC専門のSE

サイト内検索キーワードはサイト運営者からしたら宝の宝庫で、漏れなくデータとして取得したい。しかし、WordPressのデフォルトのサイト内検索機能でキーワードを保存する機能がない。したがって改修する必要があるのだが、方法は至って簡単で、特定のファイルに20行ほどのコードを追加するだけで済むのでPHP初心者でもできる。

サイト内検索を有効にする

その前にまずサイト内検索が有効か確認しよう。もし使えないならテーマのtwentyseventeen配下にあるsearch.phpとsearchform.phpを使用しているテーマにコピーすれば、それだけでWordPressのサイト内検索は使える。あとはそれぞれのファイルのデザインを整えよう。

データ取得のためにカスタマイズするのはsearch.phpだ。もちろん色々な方法があるので、search.phpに限らないが今回は決め打ちで話しを進める。基本的な考え方は以下の通り。

  1. 検索キーワードを取得する
  2. 日付やその他必要なデータなどと配列にする
  3. セキュリティチェックをする
  4. CSVファイルを保存する
if(isset($_GET[‘s’]) && empty($_GET[‘s’])) {
echo ‘検索キーワード未入力’;
} else {
echo ‘<h1>“’.$_GET[‘s’] .’”の検索結果:’.$wp_query->found_posts .’件</h1>’;
// 検索キーワードと該当件数を表示
$f_path = “/WordPress/analytics_data/”.”key-“.date(“Y-m-d”).”.csv”;
//保存するファイル名の指定をする。ここでは1日単位とした。もちろんDBに保存してもOKで、目的に応じてご自由に。

$keyword_data = array(date(‘Y-m-d-G-i-s’), $_SERVER[“REMOTE_ADDR”], $_GET[‘s’].PHP_EOL);
//配列にするここでは日付とIP、キーワードにするがここも目的に応じてご自由に

$keyword_data = implode(‘,’, $keyword_data);
//CSV形式に変換

//キーワードに異常がないか最低限のチェックをする。ここも目的に応じてご自由にどうぞ
for($i = 0; $i < sizeof($keyword_data ); $i++ ) {
if(strlen($keyword_data[$i]) > 200){
// 入力データのサイズチェックをする。ここでは200byteという想定。
exit;
}
$keyword_data[$i] = htmlentities($keyword_data[$i]);
//タグの無効化
}
file_put_contents($f_path, $keyword_data, FILE_APPEND);
//ファイルの末尾に追記する
}

以上で管理者はキーワードを取得できる。データを取得してマーケティングに活用しましょう。どう活用するかはマーケーターの腕次第です。

×
このブログを書いてる人
早川 朋孝 EC専門のSE
IT業界歴20年のエンジニアです。ネットショップ勤務で苦労した経験から、EC・ネットショップ事業者に向けて、バックオフィス業務の自動化・効率化を提案するSEをしています。
プロフィール
API連携の相談にのります
趣味は読書、ピアノ、マリノスの応援など
PAGE TOP