wp_localize_script()


WordPress関数wp_localize_script()は、スクリプトにローカライズされたデータを渡すために使用されます。この関数は、主にJavaScriptにPHPで定義された変数を渡す際に利用されます。

構文

wp_localize_script( string $handle, string $object_name, array $l10n );

引数の説明:

  • $handle (string) — ローカライズするスクリプトのハンドル名。
  • $object_name (string) — JavaScriptで使用するオブジェクト名。
  • $l10n (array) — スクリプトに渡すローカライズされたデータの配列。

例1: シンプルなデータを渡す

<?php
wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/script.js', array(), '1.0', true );
wp_localize_script( 'my-script', 'myData', array( 'key' => 'value' ) );
?>

例2: 多言語データを渡す

<?php
wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/script.js', array(), '1.0', true );
wp_localize_script( 'my-script', 'translations', array( 'greeting' => __( 'こんにちは', 'text-domain' ) ) );
?>

例3: 現在のユーザー情報を渡す

<?php
$current_user = wp_get_current_user();
wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/script.js', array(), '1.0', true );
wp_localize_script( 'my-script', 'userData', array( 'username' => $current_user->user_login ) );
?>

例4: AJAXのURLを渡す

<?php
wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/script.js', array(), '1.0', true );
wp_localize_script( 'my-script', 'ajaxData', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
?>

例5: テーマオプションを渡す

<?php
$theme_options = get_option( 'my_theme_options' );
wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/script.js', array(), '1.0', true );
wp_localize_script( 'my-script', 'themeOptions', $theme_options );
?>

注意点

  • $object_nameはJavaScriptで有効なオブジェクト名である必要があります。
  • $l10nに渡すデータは配列である必要があります。
  • スクリプトが正しくキューに登録されていない場合、ローカライズは機能しません。

関連機能: