Intereting Posts
Комментарии: Утвердить, когда администратор отвечает, с лицевой стороны Получить счетчик FaceBook Friend Автоматически создавать дочерние страницы при сохранении (родительской) страницы Удаление полей пользователя Фильтрация заказов в области администрирования на основе пользовательской мета Изменить метку поля заголовка для сообщений в бэкэнд Включение файлов CSS в HEAD на основе содержимого страницы Я получаю 0 после результата моих запросов ajax Плагин, который обеспечивает shortcode? Когда почта обновляется, пользовательские метаданные в области текстовой области перезаписываются Хранение уникальных данных в базе данных Заменить поле таксономического описания с помощью редактора Visual / WYSIWYG Magic Fields дает ошибку Файл ___ не существует? Как вы вставляете скрипт Visual Basic с помощью wp_enqueue_script? Запросить список всех галерей под родительским сообщением?

Функции функции Ajax call from front

Вот что я пытаюсь сделать: вызов функции в моей теме functions.php с фронта моей темы.

Итак, на фронте:

$(document).on('click','.btn-vote',function(e){ e.preventDefault(); var $that = jQuery(this); var id = $that.attr('data-id'); var data = { 'action': 'voteIncrementer', 'id': id }; jQuery.post(ajaxurl, data,function(response){ // ajaxurl is defined in footer.php > var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; console.log(response); $that.find('.vote-count').html(response); }); }); 

И связанная функция в functions.php:

 add_action("wp_ajax_voteIncrement", "voteIncrement"); add_action("wp_ajax_nopriv_voteIncrement", "voteIncrement"); function voteIncrement(){ echo 'hello'; die(); } 

Выйти просто так? Но дело в следующем: в моем JS журнал возвращает 0 (это означает, что wp-ajax не может найти мою функцию).

Что мне не хватает?

Solutions Collecting From Web of "Функции функции Ajax call from front"

Я думаю, что ваша проблема в ajaxurl недоступна для вашего скрипта. Попробуйте определить, что varibale перед загрузкой js-кода. Лучший способ – использовать wp_localize_script:

PHP:

 add_action( 'wp_enqueue_scripts', 'cyb_enqueue_scripts' ); function cyb_enqueue_scripts() { //Change the key and url with yours wp_register_script('my-js', get_stylesheet_directory_uri(). '/js/my-js.js', array( 'jquery' ) ); wp_enqueue_script('my-js'); //Localize script data to be used in my-js.js $scriptData = array(); $scriptData['ajaxurl'] = admin_url( 'admin-ajax.php' ); $scriptData['action'] = 'voteIncrement'; wp_localize_script( 'my-js', 'my_js_data', $scriptData ); } add_action("wp_ajax_voteIncrement", "voteIncrement"); add_action("wp_ajax_nopriv_voteIncrement", "voteIncrement"); function voteIncrement(){ echo 'hello'; die(); } 

Js:

 (function($){ $(document).ready(function(){ $('.btn-vote').on('click',function(e){ e.preventDefault(); var $that = jQuery(this); var id = $that.attr('data-id'); var data = { 'action': my_js_data.action, 'id': id }; jQuery.post( my_js_data.ajaxurl, data, function(response) { console.log(response); $that.find('.vote-count').html(response); }); }); }); })(jQuery); 

Кроме того, я бы изменил метод post в запросе ajax для get. Это быстрее, чем сообщение, и ваше дело, похоже, не требует почтового запроса.