自サイトの検索フォームを使ってPHPでリファラから検索ワードを取得して保存したい
ワードの取得はできているようですが保存がうまくいきません。
参考サイト https://cat-marketing.jp/2021/05/21/wp-search/
test.csvという未入力のファイルを置いているのですが、検索してもワードが書き込まれません。
該当コード
<php if (have_posts()): ?>
<php if(isset($_GET[‘s’]) && empty($_GET[‘s’])) {
echo ‘検索キーワード未入力’;
} else {
echo '“'.$_GET['s'] .'”の検索結果:'.$wp_query->found_posts .'件'; // 検索キーワードと該当件数を表示
// 検索キーワードと該当件数を表示
$f_path = “wp-content/themes/monomode/test.csv”.”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);//ファイルの末尾に追記する
}?>
<php while(have_posts()): the_post(); ?>
<li><a href="<php the_permalink(); ?>"><php echo get_the_title(); ?></a></li>
<php endwhile; ?>
<?php else: ?>
検索されたキーワードにマッチする記事はありませんでした
<php endif; ?>