Contact Form 7用のショートコードを作成する

WordPressでショートコードを追加する場合は「add_shortcode()」という関数を使用しますが、Contact Form 7用にショートコードを追加するには「wpcf7_add_shortcode()」という関数を使用します。本レシピではContact Form 7用のショートコードの登録方法や例を紹介します。

ショートコードの登録方法

Contact Form 7のショートコードはfunctions.phpなどに下記のような形式で記載して登録します。

「ショートコードの名前」の部分が「test」であれば、Contact Form 7のテンプレートの中で「[test]」と記載することでコードが使えるようになります。

ショートコード用の関数の書き方

ショートコード用の関数の書き方は下記のような形式です。

「return」で表示したい内容を返します。( echo などでそのまま出力してしまうと期待通りの位置に表示されないので注意してください)

例1: シンプルなショートコード (特定の文字を出力する)

「こんにちは!」と出力するだけの簡単なショートコードです。

使い方

出力結果

例2: 他の関数の値を使ったショートコード (トップページのURLを出力する)

他の関数を使ったショートコードです。ここでは「home_url()」(トップページのURL)を使用しますが、「get_bloginfo('name')」(サイト名)などいろいろなものを使用できます。

使い方

出力結果(例)

例3: 属性(引数)を使ったショートコード

Contact Form 7のショートコードもWordPress標準のショートコードと同じく属性(引数)を扱うことができます。ただし、標準のショートコード(「属性=値」形式)とは違って「属性:値」形式になります。

※ 「[checkbox checkbox-1 "値1" "値2" "値3"] 」のような部分には日本語を使えるようですが、「属性:値」形式の値部分には日本語は使えないようです。(Contact Form 7 4.3.1時点)

使い方

出力結果

例4: Contact Form 7の設定値を使ったショートコード

WPCF7_ContactForm::get_current() prop( 名前 ) というメソッドを経由して、Contact Form 7の設定などのデータを取得することができます。

使い方

出力結果

prop()で取得できる設定

prop()で取得できる値はContact Form 7 4.3.1時点では下記のとおりです。$item = $contact_form->prop( 'mail' ); のような形で取得し、さらに $item['subject'] の形で詳細項目の値を取得します。(使い方は例4を参考にしてください)

mail

mailは「メール」の設定部分です。

項目名 意味 値の例
subject 題名 [your-subject]
sender 送信元 [your-name] <[your-email]>
body メッセージ本文
recipient 送信先 test@example.com
additional_headers 追加ヘッダー
attachments ファイル添付
use_html HTML 形式のメールを使用する false
exclude_blank 空のメールタグを含む行を出力から除外する false

mail_2

mail_2は「メール(2)」の設定部分です。mailと同じ値が取得でき、さらに下記の値も取得できます。

項目名 意味 値の例
active メール2が有効か false

messages

messagesは「メッセージ」の設定部分です。

項目名 意味 値の例
mail_sent_ok メッセージが正常に送信された あなたのメッセージは送信されました。ありがとうございました。
mail_sent_ng メッセージの送信に失敗した メッセージの送信に失敗しました。間をおいてもう一度お試しいただくか、別の手段で管理者にお問い合わせ下さい。
validation_error 入力内容に不備が見つかった 入力内容に不備があります。確認してもう一度送信してください。
accept_terms 承諾が必要な項目が承諾されていない 進めるには条項の承諾が必要です。
invalid_email 入力されたメールアドレスの形式が正しくない メールアドレスの形式が正しくないようです。
invalid_required 入力必須の項目が入力されていない 必須項目に記入もれがあります。
spam 送信がスパムと見なされた メッセージの送信に失敗しました。間をおいてもう一度お試しいただくか、別の手段で管理者にお問い合わせ下さい。
invalid_too_long ユーザー入力が最大許容文字数を超える項目がある この入力は長すぎます。
invalid_too_short ユーザー入力が最小許容文字数に満たない項目がある この入力は短すぎます。
invalid_date 入力された日付の形式が正しくない 日付の形式が正しくないようです。
date_too_early 日付が最小制約日より小さい 日付が早すぎます。
date_too_late 日付が最大制約日より大きい 日付が遅すぎます。
upload_failed ファイルのアップロードが何らかの理由により失敗している ファイルのアップロードに失敗しました。
upload_file_type_invalid アップロードされたファイルが許可されたファイル形式に適合しない 許可されていないファイル形式です。
upload_file_too_large アップロードされたファイルが大きすぎる ファイルが大きすぎます。
upload_failed_php_error ファイルのアップロードが PHP のエラーにより失敗している ファイルのアップロードに失敗しました。エラーが発生しています。
invalid_number 入力された数値の形式が正しくない 数値の形式が正しくないようです。
number_too_small 数値が最小制約値より小さい 数値が小さすぎます。
number_too_large 数値が最大制約値より大きい 数値が大きすぎます。
quiz_answer_not_correct クイズに対する正しい答えが入力されなかった 答えが正しくありません。
invalid_url 入力された URL の形式が正しくない URL の形式が正しくないようです。
invalid_tel 入力された電話番号の形式が正しくない 電話番号の形式が正しくないようです。
captcha_not_match  入力されたコードが CAPTCHA に適合していない 入力されたコードが正しくありません。

additional_settings

その他の設定」の部分がそのまま文字列で取得できます。

コメント

内容の誤りなどがありましたら下記からご連絡をお願いします。頂いたコメントは基本的に公開されることはありません(必要な場合は個別に返信させて頂きます)。

CAPTCHA