<html lang="ja-jp" dir="ltr"><head></head><body>### [カスタムスマートタグの作成方法](https://wpforms.com/developers/how-to-create-a-custom-smart-tag/)

**公開日:** 2020年7月28日
**著者:** Umair Majeed

**抜粋:** このチュートリアルでは、WPForms内で使用できるカスタムスマートタグを作成する方法を説明します。

**コンテンツ:**

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

スマートタグは、フォームフィールドや通知メールに特定のデータを動的にフェッチするための便利な手段として機能します。WPFormsには豊富な組み込みスマートタグが用意されており、現在のページのURLやログイン中のユーザーのメールアドレスなどの情報を抽出できます。WPForms内の定義済みスマートタグに関する包括的な理解については、[ドキュメントを参照してください](https://wpforms.com/docs/how-to-use-smart-tags-in-wpforms/ "WPFormsでのスマートタグの使用方法")。

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

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

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

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

開始するには、両方の関数をウェブサイトにコピー＆ペーストし、必要に応じてスマートタグの名前をカスタマイズしてください。スニペットをサイトに追加する場所や方法がわからない場合は、[このチュートリアルを確認してください](https://wpforms.com/developers/how-to-add-custom-php-or-javascript-for-wpforms/ "WPForms用のカスタムPHPまたはJavaScriptの追加方法")。

```

/**
 * スマートタグを登録して、フォームビルダーで選択できるようにします。
 *
 * @link   https://wpforms.com/developers/how-to-create-a-custom-smart-tag/
 */
 
function wpf_dev_register_smarttag( $tags ) {
 
    // キーはタグ、アイテムはタグ名です。
    $tags[ 'download_link' ] = 'ダウンロードリンク';
 
    return $tags;
}
add_filter( 'wpforms_smart_tags', 'wpf_dev_register_smarttag', 10, 1 );
 
/**
 * スマートタグを処理します。
 *
 * @link   https://wpforms.com/developers/how-to-create-a-custom-smart-tag/
 */
 
function wpf_dev_process_smarttag( $content, $tag ) {
 
    // 希望するタグの場合のみ実行します。
    if ( 'download_link' === $tag ) {
 
                // このデモのリンクを、提供したいURLに置き換えます
        $link    = 'https://yoursite.com/file.pdf';
 
        // タグをリンクに置き換えます。
        $content = str_replace( '{download_link}', $link, $content );
 
    }
 
    return $content;
}
add_filter( 'wpforms_smart_tag_process', 'wpf_dev_process_smarttag', 10, 2 );
```

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

## フォームの作成

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

![新しいカスタムスマートタグを追加する通知を作成するフォームの作成から始めます](https://wpforms.com/wp-content/uploads/2022/06/wpforms-creating-custom-smart-tag-form.jpg)フォームの作成方法に関する支援については、[このドキュメントを参照してください](https://wpforms.com/docs/creating-first-form/ "最初のフォームの作成方法")。

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

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

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

![前のステップで作成したカスタムスマートタグを見つけるまで、利用可能なスマートタグをスクロールするだけです](https://wpforms.com/wp-content/uploads/2022/06/wpforms-add-custom-smart-tag.jpg)## FAQ

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

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

```

/**
* スマートタグを登録して、フォームビルダーで選択できるようにします。
*
* @link https://wpforms.com/developers/how-to-create-a-custom-smart-tag/
*/

function wpf_dev_register_smarttag( $tags ) {

// キーはタグ、アイテムはタグ名です。
$tags[ 'page_locale' ] = 'ロケールを取得';

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

/**
* スマートタグを処理します。
*
* @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 ) {

// 希望するタグの場合のみ実行します。
if ( 'page_locale' === $tag ) {

// get_locale() 関数の戻り値を $locale 変数に格納します
$locale = get_locale();

// タグを $locale 変数の値に置き換えます。
$content = str_replace( '{page_locale}', $locale, $content );

}

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

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

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

これで完了です！新しいカスタムスマートタグを正常に作成しました。カスタムスマートタグを**HTML**フォームフィールド内で処理できるようにしたいですか？もしそうなら、[HTMLフィールドでスマートタグを処理する方法](https://wpforms.com/developers/how-to-process-smart-tags-in-html-fields/ "HTMLフィールドでスマートタグを処理する方法")に関する記事をご覧ください。

## 参照フィルター

- [wpforms\_smart\_tags](https://wpforms.com/developers/wpforms_smart_tags/ "wpforms_smart_tagsフィルターの使用")
- [wpforms\_smart\_tag\_process](https://wpforms.com/developers/wpforms_smart_tag_process/ "wpforms_smart_tag_processフィルターの使用")

**カテゴリー:** チュートリアル

**タグ:** PHP, スマートタグ

---</body></html>