【问题标题】:Passing variables through php and jquery in wordpress在wordpress中通过php和jquery传递变量
【发布时间】:2022-01-20 16:45:15
【问题描述】:

我正在使用 wordpress,并且在 functions.php 文件中有以下代码

function fun1() {
 wp_enqueue_script( 'aldi_code', 'wp-content/uploads/custom-css-js/675.js', array( 'jquery' ), false, true );

 wp_localize_script( 'aldi_code', 'test', array(
     'current_user' => wp_get_current_user()
 ) ) ;
} 
add_action( 'wp_enqueue_scripts', 'fun1' );

我想使用以下代码通过 jquery 从wp_admin 访问current_user 的值

jQuery(document).ready(function( $ ){
    
    var displayName = test.current_user.display_name;       
});  

问题是我得到了错误:

测试未定义。

你知道这段代码有什么问题吗??

【问题讨论】:

  • document.ready 函数是否在 wp-content/uploads/custom-css-js/675.js 文件中?
  • 675.js文件只有这个代码jQuery(document).ready(function( $ ){ var displayName = test.current_user.display_name; });

标签: jquery wordpress parameter-passing


【解决方案1】:

如果你不想直接在 JS 和 PHP 之间传递值,你可以使用cookies。他们都可以在那里读取和写入数据。 在 PHP 中设置一个 cookie,然后在 JS 中读取。

【讨论】:

    【解决方案2】:

    基于您将current_user 对象传递给jQuery 的方式。获取display_name 时,您的 jQuery 应该如下所示。

    查看 JS 中传递给 current_user 的内容。只需转到开发人员的控制台并输入test.current_user,您就会看到data 是用户数据作为对象存储的位置。

    你也不需要使用document(ready) - 任何有价值的东西。

    jQuery(
        function($){
            let display_name = test.current_user.data.display_name;
        }
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-28
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 2013-08-11
      • 1970-01-01
      相关资源
      最近更新 更多