📜  WP_Scripts::localize 调用不正确. (1)

📅  最后修改于: 2023-12-03 15:35:45.070000             🧑  作者: Mango

WP_Scripts::localize 不正确调用

介绍

WP_Scripts::localize 是 WordPress 中的一种脚本本地化方法,用于将PHP变量传递到JavaScript中以便进行翻译。当使用WordPress Theme中的JavaScript的时候,WP_Scripts::localize 可以将绑定翻译函数进行传递,并可使用 JavaScript的.i18n对象进行翻译。

调用方式

添加 JavaScript 的翻译函数,例如:

$(document).ready(function() {
  var dictionary = {
    'hello': '你好'
  };

  if( typeof wp !== 'undefined' && typeof wp.i18n !== 'undefined' ) {
    wp.i18n.setLocaleData( dictionary, 'my-theme' );
  }
});

在 WordPress Theme 中,翻译函数通常会在functions.php中添加,例如:

function my_theme_scripts() {
  wp_enqueue_script( 'my-theme-script', get_template_directory_uri() . '/js/my-theme-script.js', array( 'jquery', 'wp-i18n' ), '1.0.0', true );
  wp_set_script_translations( 'my-theme-script', 'my-theme' );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );

在这个例子中,post-list-script.js被添加进了 Theme 中,并且需要将它用 wp_set_script_translations 函数本地化至 my-theme。

然后我们需要在JavaScript中使用WP_Scripts::localize来调用用户数据,例如:

wp.i18n._x( 'hello', 'my-theme', 'js' );

注意,'hello'是你在 dictionary 数组中设置的。

结论

WP_Scripts::localize 是一个很强大的功能,可以在 WordPress Theme 开发中更好地用于前端本地化。但是,正确地调用这个方法是至关重要的。使用上述步骤将让你避免很多的错误。