【WordPress】Contact Form7で記事タイトルをフォームに自動入力する方法【コピペOK】

お問い合わせフォームや資料請求フォームに、**「どの記事から送信されたか」**を自動で取得したいと思ったことはありませんか?

特に、ブログ記事ごとに異なる内容に対して問い合わせが来る場合、ユーザーが見ていた記事タイトルを自動でフォームにセットできたら便利ですよね。

この記事では、Contact Form7(CF7)で「投稿タイトル」を自動でフォームに渡す方法を、コピペで導入できるかたちでご紹介します!


完成イメージ

ブログ記事の下に設置されたフォームに、記事タイトルが自動で入る(ユーザーが入力しなくてもOK!)

導入ステップ

STEP1. フォームに hidden フィールドを追加

まずは、Contact Form7 のフォーム設定に以下のコードを追加します。

[hidden post_title default:get]

このpost_titleという名前の項目に、投稿タイトルを渡します。

STEP2. 投稿にアクセスされたとき、タイトルをクエリに含める

次に、フォームを表示するリンクに投稿タイトルを付け足す処理を行います。

以下のコードを、テーマの functions.php に追加します。

function add_post_title_to_cf7_form($form_tag) {
  if ($form_tag['name'] == 'post_title' && is_singular()) {
    $form_tag['values'][] = get_the_title();
  }
  return $form_tag;
}
add_filter('wpcf7_form_tag', 'add_post_title_to_cf7_form');

このコードは、フォームの中にある post_title という hidden フィールドに、現在表示中の投稿タイトルを自動で挿入してくれる処理です。

メールタグにも反映を忘れずに

メールタブで post_title を使いたい場合は、メール本文に以下のように記述しましょう。

送信元の記事タイトル: [post_title]

注意点と補足

  • この方法は、記事詳細ページ(is_singular())でのみ機能します。
  • 投稿タイトルがフォームに正しく渡されているか、テスト送信で確認してみましょう。
  • 投稿タイトル以外にも、get_the_ID()などで記事IDを渡すカスタマイズも可能です。

まとめ

Contact Form7 で「記事タイトル」を自動取得することで、
ユーザーが何に対して問い合わせているのかが一目瞭然になります!

運用効率がぐっと上がるので、複数記事にフォームを設置している方は、ぜひ導入してみてくださいね。

ABOUTこの記事を書いた人

  • mm
  • Editor: うぇぶもようの中の人