无法从Java脚本访问脚本本地化内的PHP数组

时间:2017-12-13 作者:Limpuls

我有一个循环来检索具有特定meta_key 来自的用户值wp_user_meta 数据库,然后将其放入wp_localize_script 数组,这样我就可以使用Javascript访问数据并使用它来完成我的工作。不幸的是,当我运行循环并将所有结果放入变量中,然后尝试控制台时。记录结果,我在控制台中一行只得到字符串“Array”3次,而不是实际值。

enter image description here

这是我的代码:

功能。php

add_action(\'wp_enqueue_scripts\',\'Load_Template_Scripts_wpa83855\');
function Load_Template_Scripts_wpa83855(){

    $args = array(
        \'meta_key\' => \'quiz_scores\'
    );

    $users = get_users($args);
    foreach($users as $user){
            echo "<pre>";
        print_r(get_user_meta ($user->ID));
                $veik .= get_user_meta ($user->ID);
            echo "</pre>";
    }
    if ( is_page_template(\'page-quiz.php\') ) {
        wp_enqueue_script( \'quiz\', get_template_directory_uri() . \'/js/script.js\', array(), \'20151215\', true );
                wp_localize_script(\'quiz\', Questions_list, array(
                    \'siteUrl\' => get_option("question"),
                    "ans" => get_option("answer"),
                    \'ajax_url\' => admin_url( \'admin-ajax.php\' ),
                    \'usr_scr\' => $veik
                ));
        }
}
print_r(get_user_meta ($user->ID)); 工作正常,我可以用meta_key “测验分数”。但当我把它放在变量中,然后在脚本中使用它时,本地化如下:\'usr_scr\' => $veik 试着去安慰。在我的另一个脚本中记录它。js文件console.log(Questions_list.usr_scr); 正如我所说,我在控制台中只获得了3次字符串“Array”(与数据库中具有该特定meta_key 而不是实际值)。我试过使用toString() 但它什么都没做。有什么想法吗?

1 个回复
最合适的回答,由SO网友:Milo 整理而成

get_user_meta 返回一个数组,因此要获取包含每个用户数据数组的数组,请使用[] 要附加:

foreach( $users as $user ){
    $veik[] = get_user_meta( $user->ID );
}

结束

相关推荐

为什么WordPress Admin中的这个javascript搜索功能不起作用?

我已经创建了自己的自定义元框。元框包含三个下拉菜单,用作过滤器和搜索框。还有一个显示帖子列表的结果面板。用户可以选择帖子并将其添加到另一个收集帖子的面板中。这类似于ACF关系字段及其工作方式。您在左侧有帖子,单击其中一篇,它就会添加到收集区域。按post上的submit将所有值保存到meta字段中。我有过滤器工作,我也有关系片工作。出于某种原因,我实现搜索框的方式没有任何作用。我在一个HTML文件中对此进行了测试,结果很好。我可以在搜索框中键入,它将扫描无序列表数据文本属性中的项目,找到结果并过滤列表。当