首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用wp_localize_script将php变量传递给Wordpress中的*.js文件

如何使用wp_localize_script将php变量传递给Wordpress中的*.js文件
EN

Stack Overflow用户
提问于 2018-05-08 17:53:31
回答 1查看 588关注 0票数 0

我正在开发一个WordPress插件,它使用来自后端的数据来在前端显示它。

我有两份重要的文件。一个带有表单的PHP插件文件,用户可以在其中提交数据,另一个插件的JavaScript文件,其中的数据应该实现为一个动态生成的内容文件。

首先,我使用iframe来实现数据,数据存储在HTML文件中,但是这种方法有很多缺点。我想用一个字符串变量直接插入数据,这个字符串变量从PHP文件传递到JavaScript文件,然后算出来,wp-localize-script应该能做到这一点,但我不能让它工作。

在我的PHP插件文件中,我的代码如下:

代码语言:javascript
复制
$phptestvariable = "Ausgabe der PHP-Testvariable";

function js_enqueue_scripts() {

    wp_register_script("scripts", plugin_dir_url(__FILE__) . '/wp-content/plugins/h5p/h5p-php-library/js/h5p.js' );
    wp_enqueue_script("scripts");
    wp_localize_script("scripts", "php_vars", $phptestvariable);
}
add_action("wp_enqueue_scripts", "js_enqueue_scripts");

在我的(/wp-content/plugins/h5p/h5p-php-library/js/h5p.js) JavaScript文件中,代码如下所示:

代码语言:javascript
复制
actionBar.on('cc', function () {

    console.log(php_vars.variable);
    var dialog = new H5P.Dialog('copyrights', H5P.t('ccInfo'), php_vars , $container);
        // Übergabe Werte: Button Name, PopUp Titel, PopUp Inhalt, $container
    dialog.open();
    instance.triggerXAPI('accessed-copyright');
});

我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2018-05-08 17:58:37

wp_localize_script的第三个参数必须是数组。例如:

代码语言:javascript
复制
wp_localize_script( 'scripts', 'php_vars',
    array( 
        'ajax_url' => admin_url( 'admin-ajax.php' ),
        'var_1' => 'Ausgabe der PHP-Testvariable'
    )
);

然后在你的JS中的某个地方

代码语言:javascript
复制
alert(php_vars.var_1)

将显示value 1

P.S.AJAX包含了一个ajax_url地址来调用你的AJAX,以防你需要它。Here对此进行了一些解释。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50230788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档