Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/u3186481/data/www/odminstudios.ru/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/u3186481/data/www/odminstudios.ru/wp-content/plugins/wp-syntax/wp-syntax.php on line 383
Продолжение. Часть 1
Используем admin-ajax.php для обработки AJAX запросов
AJAX запросы следует направлять к wp-admin/admin-ajax.php. Слово admin в пути скорее всего немного смущает, но все AJAX запросы с фронт-енда и с админ-панели обрабатывать будет именно admin-ajax.php.
В файл plugin_dir_url( __FILE__ ).’js/ajax.js’ добавляем следующий код:
jQuery('#xxx').click(function(){
// добавляем картинку с прелоадером или надпись загрузка
jQuery('#loader').html('загрузка...');
// сам ajax запрос
jQuery.get(MyAjax.ajaxurl, {
//передаем переменные
action : 'test',
ID : jQuery(this).attr('data-value-id')
},function(data){
// меняем прелоадер полученными данными
jQuery('#loader').html(data);
});
return false;
}); |
В скрипте обязательно передаем параметр action — как идентификатор функции, которую необходимо вызвать.
Остальные параметры, на ваше усмотрение.
В functions.php добавляем следующее:
if(isset($_REQUEST['action']) ) { do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ); do_action( 'wp_ajax_' . $_POST['action'] ); }; //для неавторизованных пользователей add_action( 'wp_ajax_nopriv_test', 'my_ajax_guest'); //для админа или пользователей с правами админа add_action( 'wp_ajax_test', 'my_ajax_admin'); function my_ajax_guest() { $id = $_GET['ID']; echo 'Переменная равна - '.$id; // не забываем выйти exit; } function my_ajax_admin() { $id = $_GET['ID']; echo 'Для админа переменная равна - '.$id; // не забываем выйти exit; } |