wp_get_current_user为空 - 子域{J}上的ajax

时间:2017-01-12 16:57:51

标签: ajax wordpress qtranslate-x

在插件中,我发起了一个ajax脚本:

function getthatable_callback() {

global $wpdb; 
include("phpscripts/gettable.php");
    wp_die(); 
}

add_action( 'wp_ajax_getthatable', 'getthatable_callback' ); 
add_action( 'wp_ajax_nopriv_getthatable', 'getthatable_callback' );

在phpscripts / gettable.php中,我尝试

print_r(wp_get_current_user());

我像这样调用ajax脚本:

jQuery.post(ajaxurl, {'action':'getthatable'}, function(data){
 jQuery("#thatablecont").html(data);
});

我使用Q-translate-X并将多语言选项设置为en.mydomain.com。当我以en.mydomain.com的身份访问网站时,AJAX脚本会输出一个空对象:

WP_User对象([data] => stdClass对象()[ID] => 0 [个字符] =>数组()[cap_key] => [roles] =>数组()[allcaps] => Array()[filter] =>)

但是当我从mydomain.com访问它时,它会很好地显示登录用户。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

错误是在我的js中使用预先设定的ajaxurl。一个快速的解决方法是手动重置它:

var ajaxurl=location.protocol + "//" + document.domain + "/wp-admin/admin-ajax.php";