get_posts查询在未登录时通过Ajax返回空数组

时间:2014-03-21 11:46:17

标签: ajax wordpress

我无法在未登录时使WordPress ajax工作。我的get_posts查询在登录时返回正确的帖子。当用户点击作者时,从前端调用Ajax。作者ID通过Ajax函数作为参数传入。

我已经设置了admin_url并定位了从

调用js的脚本
function ajax_scripts()
{
wp_localize_script( 'meet_the_team_js', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'imgurl' => plugins_url( 'img' , __FILE__ )) );    
}

add_action( 'wp_enqueue_scripts', 'ajax_scripts' );

然后我在wordpress文档中找到的if wp_ajax语句中添加了wp_ajax_nopriv(登录用户)和is_admin()(匿名用户)操作。

if ( is_admin() ) {
add_action( 'wp_ajax_nopriv_employee_recent_posts_ajax', 'employee_recent_posts_ajax' );  
add_action( 'wp_ajax_employee_recent_posts_ajax', 'employee_recent_posts_ajax' );
}

这是员工最近的帖子ajax功能

function employee_recent_posts_ajax($atts)
{
$html = get_employee_recent_posts();
die($html);
}

完整的get_employee_recent_posts函数太长而无法发布。但是,这是导致问题的get_posts查询。请注意,当用户未登录时,$userid$catid变量包含正确的数据。

$authorposts = get_posts(array('author'=>$userid, 'posts_per_page' => 2, 'order' => 'DESC', 'category' =>$catid));  

如果任何人对如何解决这个问题有任何见解或想法,我们将不胜感激!

谢谢!

编辑:包括部分ajax请求代码。

jQuery.ajax({  
            crossDomain: true,
            type: 'GET',  
            url: MyAjax.ajaxurl,  
            data: {  
            'action': 'employee_recent_posts_ajax',  
            'userid': userid


},

0 个答案:

没有答案