ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

カスタムスマートタグの作成方法

フォームの機能を強化するために、カスタムスマートタグの作成にご興味はありますか?カスタムスマートタグを埋め込むことを想定している場合、例えばダウンロードリンクをメール通知や確認メッセージに埋め込むなど、カスタムコードスニペットを使用すればプロセスは簡単です。このガイドでは、PHPを使用してカスタマイズされたスマートタグを作成する手順を説明します。

スマートタグは、フォームフィールドや通知メールに特定のデータを動的に取得するための便利な手段です。WPFormsには、現在のページのURLやログイン中のユーザーのメールアドレスなどの情報を抽出できる、豊富な組み込みスマートタグが用意されています。WPForms内の定義済みスマートタグについて包括的に理解するには、ドキュメントを参照してください

カスタムスマートタグの作成

以下の例では、フォームが完了した後にダウンロードリンクのURLを表示するために特別に設計された新しいカスタムスマートタグを作成する方法をデモンストレーションします。このプロセスには、それぞれ異なる目的を持つ2つのPHP関数が含まれます。

最初の関数はスマートタグの作成を担当します。これは、他のスマートタグに合わせてカスタマイズするために、基本的な名前の変更のみが必要なように設計されています。

2番目の関数は、コードの大部分が実装される場所です。ifステートメント内で、このスマートタグに表示させたい値を取得するために必要なコードを追加する必要があります。

開始するには、両方の関数をウェブサイトにコピー&ペーストし、必要に応じてスマートタグの名前をカスタマイズしてください。スニペットをサイトに追加する場所や方法がわからない場合は、このチュートリアルを確認してください

/**
 * Register the Smart Tag so it will be available to select in the form builder.
 *
 * @link   https://wpforms.com/developers/how-to-create-a-custom-smart-tag/
 */
 
function wpf_dev_register_smarttag( $tags ) {
 
    // Key is the tag, item is the tag name.
    $tags[ 'download_link' ] = 'Download Link';
 
    return $tags;
}
add_filter( 'wpforms_smart_tags', 'wpf_dev_register_smarttag', 10, 1 );
 
/**
 * Process the Smart Tag.
 *
 * @link   https://wpforms.com/developers/how-to-create-a-custom-smart-tag/
 */
 
function wpf_dev_process_smarttag( $content, $tag ) {
 
    // Only run if it is our desired tag.
    if ( 'download_link' === $tag ) {
 
                // Replace our link in this demo with the URL you wish to provide
        $link    = 'https://yoursite.com/file.pdf';
 
        // Replace the tag with our link.
        $content = str_replace( '{download_link}', $link, $content );
 
    }
 
    return $content;
}
add_filter( 'wpforms_smart_tag_process', 'wpf_dev_process_smarttag', 10, 2 );

注意: スマートタグ名には、小文字のラテン文字、数字、およびアンダースコアのみを含めることができます。

フォームの作成

次に、簡単なニュースレターフォームを作成しましょう。ユーザーがニュースレターにサインアップすると、無料のeBookダウンロードリンクを提供することを目指します。これは、WPFormsスマートタグの機能を活用する優れた例となります。このスマートタグが確立されれば、追加のコード調整なしに、将来のフォーム作成に簡単に組み込むことができます。

通知に新しいカスタムスマートタグを追加するフォームの作成から始めます

フォームの作成方法についてサポートが必要な場合は、このドキュメントを確認してください

新しいカスタムスマートタグの使用

それでは、新しく作成したカスタムスマートタグを使用しましょう。このチュートリアルでは、メール通知にダウンロードリンクのスマートタグを組み込みます。

開始するには、フォームビルダーに移動し、設定をクリックしてから、通知を選択します。通知設定内で、メールメッセージボックスまでスクロールダウンします。スマートタグを表示リンクをクリックし、利用可能なスマートタグを閲覧して、ダウンロードリンクスマートタグを見つけます。それを選択するだけで、通知テンプレートに自動的に追加されます。

前のステップで作成したカスタムスマートタグが見つかるまで、利用可能なスマートタグをスクロールしてください

よくある質問

ウェブサイトの現在のロケールを動的に追加するスマートタグを作成できますか?

はい、ウェブサイトの現在のロケール(例:「fr」、「de」、「en」)を取得するカスタムスマートタグを作成できます。実装方法は次のとおりです。

/**
* Register the Smart Tag so it will be available to select in the form builder.
*
* @link https://wpforms.com/developers/how-to-create-a-custom-smart-tag/
*/

function wpf_dev_register_smarttag( $tags ) {

// Key is the tag, item is the tag name.
$tags[ 'page_locale' ] = 'Get Locale';

return $tags;
}
add_filter( 'wpforms_smart_tags', 'wpf_dev_register_smarttag', 10, 1 );

/**
* Process the Smart Tag.
*
* @link https://wpforms.com/developers/how-to-create-a-custom-smart-tag/
* 
* WordPress get_locale(): https://developer.wordpress.org/reference/functions/get_locale/
*/

function wpf_dev_process_smarttag( $content, $tag ) {

// Only run if it is our desired tag.
if ( 'page_locale' === $tag ) {

// Stores the locale returned by the get_locale() function in the variable $locale
$locale = get_locale();

// Replace the tag with the $locale variable value.
$content = str_replace( '{page_locale}', $locale, $content );

}

return $content;
}
add_filter( 'wpforms_smart_tag_process', 'wpf_dev_process_smarttag', 10, 2 ); 

このスニペットは、WordPressのget_locale()関数を使用して、「Get Locale」という新しいスマートタグを作成します。

スニペットを追加した後、フォーム、メール通知、または確認メッセージで{page_locale}スマートタグを使用できます。

これで完了です!新しいカスタムスマートタグを正常に作成しました。HTMLフォームフィールド内でそのカスタムスマートタグを処理できるようにしたいですか?もしそうなら、HTMLフィールドでスマートタグを処理する方法の記事をご覧ください。

参照フィルター