AJAX в wordpress плагине в switch

Gagablik
На сайте с 22.02.2011
Offline
57
336

Сразу код, который не работает, в конце вопрос =):

Главный файл плагина wordpress:

define('UrlPlugin', plugin_dir_path(__FILE__));	// Путь до плагина


switch ($_SERVER['REQUEST_URI']) { // Навигация по сайту
case '/vyistavit-redaktirovat-golosa':
include UrlPlugin.'addEditVote/AddEditVote.php';
break;
}

Файл AddEditVote.php:

add_action( 'wp_ajax_hello', 'say_hello' );

function say_hello() {
echo "УРАААААААААААА!";
wp_die();
}

//// при хуке действии wp_enqueue_scripts, вызываем функцияю, которая зарегистрирует JS код обработчика AJAX и выставил её после jQuery
add_action('wp_enqueue_scripts', function () {
wp_enqueue_script('ajaxAddEditVote', plugins_url('/ajaxAddEditVote.js', __FILE__), array('jquery'), null);
// До вывода JS, вызванного wp_enqueue_script, выводим JS объект с какими либо значениями
wp_localize_script('ajaxAddEditVote', 'localizePlugin', array(
'ajaxURL' => admin_url('admin-ajax.php')
));
});

JS с AJAX запросом, добавленный в предыдущем файле:

[JS]var data = {

action: 'hello',

};

jQuery.post(localizePlugin.ajaxURL, data, function (response) {

alert('Получено с сервера: ' + response);

});[/JS]

Нужно:

- Что бы на определённой странице сайта срабатывал AJAX и все файлы,

связанные с ним хранились в отдельной папке плагина.

- В коде выше, все пути прописаны правильно (перепроверил много раз),

экшн для не авторизованных не требуется.

- Если из

switch

вытащить

include UrlPlugin.'addEditVote/AddEditVote.php';

И просто разместить в главном файле плагина, то всё работает, но на всех страницах сайта. Как только загоняешь в switch или if, то перестаёт работать и появляется 400 ошибка AJAX

SeVlad
На сайте с 03.11.2008
Offline
1609
#1
Gagablik:
Сразу код, который не работает

Выкинуть эту срань, читать маны ВП - функции, написание плагинов, подключение скриптов

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
Gagablik
На сайте с 22.02.2011
Offline
57
#2
SeVlad:
Выкинуть эту срань, читать маны ВП - функции, написание плагинов, подключение скриптов

При чём тут маны? по ним как раз всё и составлено. только нужно было разбить по файлам и разным папкам. В этом и была проблема. Но вы же не читаете, на обум ответ. С данным вопросом разобрался, конфликт был с $_SERVER['REQUEST_URI'], так как при AJAX запросе он указывал на другую страницу. И дело было совсем не в ВП

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий