7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Contact Form 7でオリジナルのタグを作成する

Last updated at Posted at 2025-10-22

はじめに

Contact Form 7でお問い合わせフォームを作成中に、自分が作成したタグも使用できたら良いのになと思い、自作タグを利用できる方法を調べたので、アウトプットとして記載します。

概要

Contact Form 7のフォーム編集画面では、[text][email]などの用意されているタグや、HTML、JavaScriptも利用することができます。

image.png

image.png

複数のフォームに同じ内容を表示したい場合、各フォームにベタ書きしていると、内容が変わった時に修正が大変になってしまいます。

そこで本記事では、Contact Form 7でオリジナルのタグを作成し、簡単に利用できるようにする方法を紹介します。

自作タグ作成手順

PHPで作成するため、テーマのfunctions.phpファイルを直接編集せずに、簡単にPHPコードを追加・管理できる、Code Snippetsプラグインをインストールします。
テーマのfunctions.phpを編集して作成することも可能ですが、テーマの更新とともに消えてしまうリスク等もあるため、Code Snippetsを利用します。

プラグインのインストールが終わり有効化をクリックすると、左側に「スニペット」というタブが表示されるので、新規追加をクリックします。

image.png

スニペットの名前を入力し、Codeの部分にPHPを書きます。

image.png

add_action( 'wpcf7_init', 'custom_add_form_tag_show_time' );
 
function custom_add_form_tag_show_time() {
  wpcf7_add_form_tag( 'show_time', 'custom_show_time_form_tag_handler' ); 
}
 
function custom_show_time_form_tag_handler( $tag ) {
  // WordPressのタイムゾーンに基づいた現在時刻を取得
  $now = current_time('H:i:s');
  
  // 取得した時刻を返す
  return $now;
}

add_action('フック名', '実行したい関数名');で実行したい関数をどのタイミングで実行するかを決定します。

wpcf7_initは「Contact Form 7」が初期化される際に実行されるフックとなっており、wpcf7_add_form_tag()を呼び出す場合は、このフックを使う必要があります。(参考: https://contactform7.com/ja/2020/02/28/adding-a-custom-form-tag/)

wpcf7_add_form_tag('タグ名', '処理を行う関数名')でタグの作成と、そのタグが使われたときにどの関数を実行するかを決定します。
ここでは、show_timeというタグが指定されたときに、時刻を表示するタグを作成しました。

作成が完了したら、Save Changes and Activateをクリックします。

image.png

最後に、作成したタグが正しく利用できるかを確認します。

フォームを作成し、先ほど作成したshow_timeタグを追加します。

image.png

現在時刻が表示されました。

image.png

関数の中身を変更することにより、オリジナルのタグを作成することができます。
また、修正の際も関数の中身を修正することで、全てのフォームの内容を変更することができます。

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?