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_url
とnonce
が含まれます。
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_url
やajax_object.nonce
を使ってPHPから渡されたデータにアクセスできます。
関連する関数
- wp_register_script(): スクリプトを登録します。
- wp_enqueue_script(): 登録されたスクリプトをキューに追加します。
- wp_create_nonce(): セキュリティトークン(nonce)を生成します。
- admin_url(): 管理者向けのURLを生成します。
これらの関数と組み合わせて使用することで、PHPからJavaScriptへのデータの伝達がスムーズになります。