ブログのコメント欄は、キャッシュプラグインとの相性が悪く、結局、閉じることにしました。
しかし、それだけでは寂しいので、メールフォーム(Contact Form 7)を活用して、どのページからメールが送られたのかを把握できるようにしてみました。
この記事では、メールフォームにリファラー(遷移元URL)情報を添付する方法を備忘録としてまとめています。
コメント欄を閉じた理由
WordPressのコメント欄は、キャッシュプラグイン(LiteSpeed Cacheなど)と相性が悪く、正しく動作しないことがあります。
そのため、コメント欄は閉じることにしました。

しかしそれでは寂しいので、メールフォーム(Contact Form 7)をフル活用し、コメント欄のように活用することを考えました。
メールフォームでリファラー情報を取得するメリット
メールフォーム(Contact Form 7)では通常、送信元情報は添付されません。
例えば、ユーザーが「A」というページを見ていて、「A」のフッターにあるメールフォームをクリックし、送信した場合、リファラー情報があれば「Aページからの送信」と分かります。
これにより、コメント欄の代替として、以下のような文章を記事下に一筆入れ、ユーザーからメッセージが届いても対応がしやすくなります。

メールフォームを活用する理由
メールフォームでのやり取りには、コメント欄にはないいくつかの利点があります。
- 管理の負担軽減:
コメント欄は公開された場でのやり取りになるため、公開を前提とした返信が必要で気を使います。一方、メールフォームなら個別対応が可能で、管理の負担を軽減できます。 - 丁寧な対応が可能:
メールは個別に返信できるため、読者との信頼関係を築きやすく、双方向のコミュニケーションが図りやすくなります。 - 投稿のハードルが適切に保てる:
メールは気軽に送れる一方で、「ちょっとした悪口」程度では送る心理的ハードルが働き、建設的な意見が集まりやすくなります(悪質なものは受信拒否も可能です)。 - データとして残りやすい:
メールで届いた意見は管理しやすく、どの記事にフィードバックが集まるかを見ることで、サイトの改善のヒントになります。 - 信頼性の向上:
記事内に”フィードバックを送れる”手段があることは、信頼性と透明性の証 になります。
手順:JavaScriptでリファラーを取得
メールフォーム(Contact Form 7)にリファラー(遷移元URL)情報を添付する方法はとても簡単です。
まず、WordPressテーマの javascript.jsに以下のコードを貼り付けます。

*Cocoonの場合Cocoon Child の javascript.jsになります
/*
*------------------------------------------------------
* Contact Form 7 (CF7) 用: 遷移元URL自動取得スクリプト
*------------------------------------------------------
* このスクリプトは、ユーザーがフォームを送信する直前に閲覧していたページの
* URL(リファラー)を取得し、CF7フォーム内の隠しフィールド
* 'referer-url' に自動的に値を入力します。
*/
window.onload = function() {
// ページ読み込み時に実行
var referrerUrl = document.referrer;
// 'referer-url' という名前の隠しフィールドを探す
var hiddenField = document.querySelector('input[name="referer-url"]');
// 隠しフィールドと遷移元URLが存在すれば値をセットする
if (hiddenField && referrerUrl) {
hiddenField.value = referrerUrl;
}
};
このスクリプトにより、ユーザーがフォーム送信する直前に閲覧したページのURLを取得し、CF7の隠しフィールドに自動でセットします。
Contact Form 7の設定
Contact Form 7のフォームタブとメールタブに以下を追記します。
[hidden referer-url]

送信元個別URL:[referer-url]

たったこれだけでメールフォーム(Contact Form 7)にリファラー(遷移元URL)情報が添付されるようになります。

すごい!!
注意事項:metaタグの設定
これには、HTMLのメタタグに以下のコードを記述されているのが前提になります(入ってない場合はHTMLのheadタグ内に入れましょう)。
<meta name="referrer" content="no-referrer-when-downgrade"/>
意味は「リファラー(遷移元URL)情報を送ってもいいよ!」と指定するコードになります。
Cocoonの場合は、設定の「SEO」タブ内に「no-referrer-when-downgrade」の項目があるのでチェックを入れるだけで完了です!!

*同一ドメイン内であれば”strict-origin-when-cross-origin”(ブラウザデフォルト)などでもできると思います。
まとめ
コメント欄は閉じましたが、メールフォームでリファラー情報を取得することで、どのページから送信されたかを把握できるため、コメント欄の代替として活用可能です。
手順も簡単で、JavaScriptとCF7の設定だけで完了します。
さらに、メールフォームには Google reCAPTCHA などのスパム対策を導入できるので、安心して運用できます。
※Googleフォームでもリファラー情報を取得できますが、スパムのリスクがやや高いため、今回はメールフォームを採用しました。
個人的には、公開でやり取りするよりも、クローズドなメールでのやり取りのほうが性に合っているので、これは我ながら良いアイデアだと思いました。
今まで放置していたCF7を再調整し、サンクスページ作成と、自動返信メール設定も行いました。

日々勉強です!!
※これは管理人がAIの力を借りながら行ったものですので、質問されても返答できません。実装は自己責任でお願いします。


