Wordpress Ajax为管理员用户正确返回数据,但为非管理员返回整个主页


Wordpress Ajax returns data correctly for admin user, but returns the entire home page for non-admins

所以正如上面的主题所述,我有一个 2 字段表单,它通过 ajax 将两个变量发布到通过 WP_User_Query 查询的 php 文件中。然后,返回的数据将显示在页面上。以管理员身份登录时,整个过程完美运行。以订阅者身份登录并运行同一脚本时会出现此问题。返回的结果是加载到我的"结果"div 中的整个主页。我已经检查了控制台,上面写着"XHR 已加载(admin-ajax.php - 302 暂时移动",以及另一个内容为"XHR 已加载(网站名称在这里) - 301 永久移动"。

任何帮助将不胜感激,甚至指出故障排除的正确方向。这是我的PHP代码的前几行,因为我觉得这就是问题所在。

//Add Activity to Database (AJAX)
add_action("wp_ajax_county_search", "county_search");
add_action("wp_ajax_nopriv_county_search", "my_must_login_county_search");
function nceda_county_search() { ...

这是我的js文件和ajax本地化的队列...

//Enqueue Scripts
add_action( 'init', 'my_script_enqueuer' );
function my_script_enqueuer() {
   wp_register_script( "member_search_script", WP_PLUGIN_URL.'/member-search/js/member-search.js', array('jquery') );      
   wp_localize_script( 'member_search_script', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));  
   wp_enqueue_script( 'member_search_script' ); 
}

admin_url

http://codex.wordpress.org/Function_Reference/admin_url

admin_url模板标记检索到管理区域的 URL 具有适当协议的当前站点,如果is_ssl()和 否则为"http"。如果方案是"http"或"https",则is_ssl()是 重写。

参数$path(字符串)(可选)相对于管理 URL 的路径。 默认值:无 $scheme(字符串)(可选)要使用的方案。违约 是"admin",它服从force_ssl_admin()和is_ssl()。"http"或 可以传递"https"来强制这些方案。该函数使用 get_site_url(),因此允许的值包括该 功能。默认值:"管理员"

查看架构参数

(字符串) (可选)提供网站 URL 上下文的方案。现在 "http"、"https"、"login"、"login_post"、"admin"或"relative "。

尝试使用"http"或空

或更好地使用 site_url()