2012-06-13 3 views
1

Я использую Dave's Wordpress Live Search.Wordpress плагин работает только для зарегистрированных пользователей

Проблема у меня есть, это прямой поиск - он работает только для зарегистрированных пользователей. Если я вошел в систему, плагин работает нормально. Я нашел эту строку:

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

, который означает, плагин использует admin-ajax.php и я думаю, что неавторизованные пользователи не доступ к нему.
я попытался определить ajaxURL без , is_ssl():

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

, но не помогло.

Признаться ли с проблемой доступа к wp-admin/admin-ajax.php? Как я могу его изменить?

ответ

2

В вашем случае я бы клонировал admin-ajax.php и переименовал его и удалил все связанные с администратором условные обозначения из файла.

Более конкретно:

  • Убедитесь, чтобы включить новый клонированный файл, где это требуется вместо старой.
  • Убедитесь, что вы изменяете только разрешения уровней из файла.
  • клонированная файл просто положить в том же каталоге, что админ-ajax.php, «сор-админ»

Успехов! :)

+0

Большое спасибо, вы сохранили мой день :) Я сделал копию '/ wp-admin/ajax.admin.php' и изменил' define ('WP_ADMIN', true), 'to' define ('WP_ADMIN', ложь); '. Чем я изменил в файле плагина 'ajaxURL', чтобы использовать новый файл, и он работает. – miszczu

+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');" 
+0

Поскольку @Dynelight указывает выше, вам нужно предоставить крючки для админов и не-админов для чего-либо, используя AJAX через ядро ​​WP. Это связано с тем, что AJAX работает как администратор через ядро. Поэтому вы должны учитывать это с помощью своего кода. –

Смежные вопросы