SEが教えるEC運営のブログ ウェブ運用と開発現場を経験したSEの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);
//ファイルの末尾に追記する
}

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

×

メルマガ登録

SEが商品登録、在庫管理、発注などのEC業務を効率よくプログラムで実施する方法を無料配信します。

  • APIやツールによる業務効率化
  • 広告運用に関するTips
  • CVRを改善するアクセス解析のコツ
このブログを書いてる人
早川 朋孝 EC専門のSE
IT業界歴20年のエンジニアです。ネットショップ勤務で苦労した経験から、EC・ネットショップ事業者に向けて、バックオフィス業務の自動化・効率化を提案するSEをしています。
Web運用の経験もあり、アクセス解析、広告運用が得意で、広告APIとプログラムとの合わせ技で並の広告代理店にはできない提案が可能です。
プロフィール
API連携の相談にのります
趣味は読書、ピアノ、マリノスの応援など
PAGE TOP