サイト内検索キーワードはサイト運営者からしたら宝の宝庫で、漏れなくデータとして取得したい。しかし、WordPressのデフォルトのサイト内検索機能でキーワードを保存する機能がない。したがって改修する必要があるのだが、方法は至って簡単で、特定のファイルに20行ほどのコードを追加するだけで済むのでPHP初心者でもできる。
サイト内検索を有効にする
その前にまずサイト内検索が有効か確認しよう。もし使えないならテーマのtwentyseventeen配下にあるsearch.phpとsearchform.phpを使用しているテーマにコピーすれば、それだけでWordPressのサイト内検索は使える。あとはそれぞれのファイルのデザインを整えよう。
データ取得のためにカスタマイズするのはsearch.phpだ。もちろん色々な方法があるので、search.phpに限らないが今回は決め打ちで話しを進める。基本的な考え方は以下の通り。
- 検索キーワードを取得する
- 日付やその他必要なデータなどと配列にする
- セキュリティチェックをする
- CSVファイルを保存する
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);
//ファイルの末尾に追記する
}
以上で管理者はキーワードを取得できる。データを取得してマーケティングに活用しましょう。どう活用するかはマーケーターの腕次第です。