Admin AJAX不适用于非登录用户

时间:2014-10-06 作者:Meschiany

我知道这个问题已经讨论过很多次了,但我想大多数建议我都试过了。

这是我的代码:

$.post(\'<?php echo admin_url( \'admin-ajax.php\' ) ?>\', 
    {\'action\': \'load_posts\',
     \'offset\': offset,
     \'author\' : <?php echo $uid?>,
     \'cat\'  : \'<?php echo $category->name?>\',
     \'color\': \'<?php echo get_cat_color($category->cat_ID)?>\' 
    },  function(response){
        if (response.trim() == ""){$("#more_posts_<?php echo $catNoSpace?>").hide();}
           $("#cat<?php echo $catNoSpace?>").append("<div class=\'newdiv\'>" + response + "</div>");
        }
我有这两条线:

add_action(\'wp_ajax_load_posts\', \'ng_load_posts\');

add_action(\'wp_ajax_nopriv_load_posts\', \'ng_load_posts\');
还有一口井ng_load_posts() 作用

我还试图禁用所有已安装的插件。

我错过了什么?

1 个回复
SO网友:Mark Kaplun

有一些“神奇”的请求参数可以更好地避免,大多数都可以在请求url中用作参数名称,但也有一些更像“电子邮件”(不要认为它有很好的文档记录,快速的google也无法提供好的参考)。

尝试更改参数的名称,尤其是“author”和“cat”,可能只是给它们添加一些前缀。

结束

相关推荐

使用W3TC手动缓存非WP但使用WP的特殊页面(例如AJAX结果

在活动主题文件夹下,我有一个搜索自动完成。php文件,它使用各种WP查询创建智能JSON结果,这些结果通过AJAX传递到jQuery UI自动完成输入字段。它不是一个普通的模板文件(事实上,它不应该真正位于主题文件夹中,它可能是一个插件),但它用以下行加载所需的WP函数:require_once(\"../../../wp-load.php\"); 然而,由于它不执行整个页面执行的正常挂钩,因此它永远不会被W3TC或超级缓存缓存,这显然是次优的,尤其是对于搜索字段上几乎每个按键都会请求的内容。有