Wordpress插件仅适用于已登录的用户

时间:2012-06-13 08:52:04

标签: wordpress

我正在使用Dave's Wordpress Live Search

我遇到的问题是实时搜索 - 它仅适用于已登录的用户。如果我已登录,插件工作正常。我找到了这一行:

'ajaxURL' => admin_url('admin-ajax.php', is_ssl()),

这意味着插件正在使用admin-ajax.php,我认为未登记的用户无法访问它 我尝试在没有, is_ssl()的情况下定义ajaxURL:

'ajaxURL' => admin_url('admin-ajax.php'),

但没有帮助。

访问wp-admin/admin-ajax.php是否有问题?我怎么能改变它?

2 个答案:

答案 0 :(得分:6)

这是旧的,但我正在研究这个问题。 您可以复制插件的钩子并添加“no_priv”版本,而不是更改核心。我确信这比复制核心中的文件更优雅。

请参阅:http://codex.wordpress.org/AJAX_in_Plugins

从该页面开始:

“面向观众的Ajax” 从WordPress 2.8开始,有一个类似'wp_ajax_my_action'的新钩子:

'wp_ajax_nopriv_my_action'为未登录的用户执行。 因此,如果您希望为访问者和登录用户触发,则可以执行以下操作:

add_action('wp_ajax_my_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');"

答案 1 :(得分:2)

在你的情况下,我会克隆admin-ajax.php并重命名它并从文件中删除所有与管理员相关的条件。

更具体:

  • 确保在需要的位置包含新的克隆文件而不是 旧的。
  • 确保您也只更改权限 来自档案的等级。
  • 克隆文件只是放在与admin-ajax.php相同的目录中,“wp-admin”
祝你好运! :)