はじめに
Contact Form 7でお問い合わせフォームを作成中に、自分が作成したタグも使用できたら良いのになと思い、自作タグを利用できる方法を調べたので、アウトプットとして記載します。
概要
Contact Form 7のフォーム編集画面では、[text]や[email]などの用意されているタグや、HTML、JavaScriptも利用することができます。
複数のフォームに同じ内容を表示したい場合、各フォームにベタ書きしていると、内容が変わった時に修正が大変になってしまいます。
そこで本記事では、Contact Form 7でオリジナルのタグを作成し、簡単に利用できるようにする方法を紹介します。
自作タグ作成手順
PHPで作成するため、テーマのfunctions.phpファイルを直接編集せずに、簡単にPHPコードを追加・管理できる、Code Snippetsプラグインをインストールします。
テーマのfunctions.phpを編集して作成することも可能ですが、テーマの更新とともに消えてしまうリスク等もあるため、Code Snippetsを利用します。
プラグインのインストールが終わり有効化をクリックすると、左側に「スニペット」というタブが表示されるので、新規追加をクリックします。
スニペットの名前を入力し、Codeの部分にPHPを書きます。
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をクリックします。
最後に、作成したタグが正しく利用できるかを確認します。
フォームを作成し、先ほど作成したshow_timeタグを追加します。
現在時刻が表示されました。
関数の中身を変更することにより、オリジナルのタグを作成することができます。
また、修正の際も関数の中身を修正することで、全てのフォームの内容を変更することができます。






