我怀疑您使用的html块元素不能处理php,这就是为什么script标记不能按您希望的方式工作。
wp_localize_script() 是一个方便的函数,用于将数据从PHP传递到脚本。该函数的作用基本上与您尝试使用html块时所做的相同。
假设你在你的主题中这样做,你有以下结构,
// theme structure
/your-theme
style.css
functions.php
/assets
scripts.js
你已经定义了一个常数
wp-config.php
文件
// wp-config.php
define(\'PERSONAL_KEY\', \'VALUE\');
在您的主题中
functions.php
然后您可以
enqueue your scripts file, 其中需要定义的常量,并使用
wp_localize_script()
.
// functions.php
<?php
add_action(\'wp_enqueue_scripts\', \'your_theme_assets\');
function your_theme_assets() {
$url = get_template_directory_uri();
// enqueue scripts
wp_enqueue_script( \'your-theme\', $url . \'/assets/scripts.js\', array(\'\'), \'1.0.0\', true );
// localize variable for scripts
wp_localize_script(
\'your-theme\',
\'yourTheme\',
array(
\'personalKey\' => defined(\'PERSONAL_KEY\') ? PERSONAL_KEY : \'\',
// \'more\' => \'values\',
)
);
}
之后,您可以访问
personalKey
从本地化
yourTheme
全局变量。
// assets/scripts.js
console.log(yourTheme.personalKey);