wp_localize_script()

wp_localize_script()関数の概要

wp_localize_script()は、WordPressでスクリプトにローカライズされたデータを渡すための関数です。この関数は、JavaScriptコードにPHPからのデータを渡す際に使用され、ローカリゼーション(翻訳や地域特有の設定)だけでなく、任意のデータをJavaScriptに渡すことができます。通常、スクリプトをキューに追加した後に呼び出します。

パラメータの説明

  • $handle (文字列): 対象となるスクリプトのハンドル。このハンドルはwp_enqueue_script()wp_register_script()で使用されたものと一致している必要があります。
  • $object_name (文字列): JavaScript側で使用されるオブジェクトの名前。データはこのオブジェクトのプロパティとしてアクセスされます。
  • $l10n (配列): JavaScriptに渡されるデータの連想配列。配列のキーがJavaScriptオブジェクトのプロパティ名になります。

使用例

以下の例では、custom-scriptというハンドルでスクリプトを登録し、そのスクリプトにajax_objectというオブジェクトを通じてデータを渡しています。このデータには、ajax_urlnonceが含まれます。

function my_custom_scripts() {
    wp_register_script(
        'custom-script',
        get_template_directory_uri() . '/js/custom-script.js',
        array('jquery'),
        '1.0',
        true
    );

    wp_localize_script(
        'custom-script',
        'ajax_object',
        array(
            'ajax_url' => admin_url('admin-ajax.php'),
            'nonce'    => wp_create_nonce('my_nonce')
        )
    );

    wp_enqueue_script('custom-script');
}
add_action('wp_enqueue_scripts', 'my_custom_scripts');

この例では、custom-script.js内でajax_object.ajax_urlajax_object.nonceを使ってPHPから渡されたデータにアクセスできます。

関連する関数

  • wp_register_script(): スクリプトを登録します。
  • wp_enqueue_script(): 登録されたスクリプトをキューに追加します。
  • wp_create_nonce(): セキュリティトークン(nonce)を生成します。
  • admin_url(): 管理者向けのURLを生成します。

これらの関数と組み合わせて使用することで、PHPからJavaScriptへのデータの伝達がスムーズになります。