1

I'm using Dave's Wordpress Live Search.

The problem I have, is live search - it works only for logged users. If i'm logged in, plugin works fine. I found this line:

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

which mean plugin is using admin-ajax.php and i think unlogged users haven't access to it.
I tried to define ajaxURL without , is_ssl():

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

but didn't help.

Is it a problem with access to wp-admin/admin-ajax.php? How can i change it?

4

2 回答 2

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');"
于 2013-03-19T16:33:13.940 回答
2

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

更详细:

  • 确保在需要的地方包含新的克隆文件而不是旧文件。
  • 确保您只更改文件中的权限级别。
  • 克隆的文件只是放在与 admin-ajax.php 相同的目录中,“wp-admin”

祝你好运!:)

于 2012-06-13T09:09:59.717 回答