Intereting Posts
Штрих-код галереи, показывающий идентификаторы Заблокировано / Разблокировано в заголовке Как восстановить слизни для категорий и тегов, конвертирующих нелатинские символы? Меню администратора и администратора. Плагин разрешений Как получить имя автора сообщения по его идентификатору внутри функции? Первичное и вторичное меню Кнопка «Читать дальше» отображается на отдельных сообщениях Категории фильтров при обновлении Использование $ paged перенаправления / страницы / 2 на страницу 1 Тема Dashicons не отображается Добавление содержимого в архивные и таксономические страницы для пользовательских типов сообщений? Создайте 3 отношения уровня с ACF и WordPress Проблемы с отключением комментариев для моих страниц статистики WordPress multisite non www перенаправляется на главный сайт Как динамически загружать окно столбцов сообщений?

Отображение функции с использованием AJAX

Я пытаюсь показать функцию с помощью AJAX с помощью настраиваемого плагина. Но, похоже, не работает.

Мой Javascript

(function($) { $(document).on( 'click', 'a.mylink', function( event ) { $.ajax({ url: testing.ajax_url, data : { action : 'diplay_user_table' }, success : function( response ) { jQuery('#user_reponse').html( response ); } }) }) })(jQuery); 

Мой PHP

 add_action( 'wp_enqueue_scripts', 'ajax_test_enqueue_scripts' ); function ajax_test_enqueue_scripts() { wp_enqueue_script( 'test', plugins_url( '/test.js', __FILE__ ), array('jquery'), '1.0', true ); wp_localize_script( 'test', 'testing', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )); } add_action('wp_ajax_my_action', 'diplay_user_table'); function diplay_user_table() { echo "function is loading in div"; } 

Когда я нажимаю на ссылку, он просто отображает «0». Есть идеи?

Вы не подключаете функцию к wp_ajax правильно. Вам нужно заменить часть my_action именем вашего действия, которое вы используете в запросе AJAX. В вашем случае это display_user_table . Вам также нужно подключить его к wp_ajax_nopriv чтобы он работал для wp_ajax_nopriv из системы пользователей. Вот ваш крючок с этими изменениями:

 add_action('wp_ajax_diplay_user_table', 'diplay_user_table'); add_action('wp_ajax_nopriv_diplay_user_table', 'diplay_user_table'); function diplay_user_table() { echo "function is loading in div"; wp_die(); } 

Вы можете использовать быстрый и быстрый метод, чтобы избавиться от раздражающего 0, который преследует каждый запрос AJAX до конца. Используя конечную точку REST API, вам не нужно писать разные действия для зарегистрированных пользователей и пользователей без входа.

Вот краткий пример:

 add_action( 'rest_api_init', function () { register_rest_route( 'aido14', '/my_path/', array( 'methods' => 'GET', 'callback' => 'diplay_user_table' ) ); }); // Callback function function diplay_user_table() { $data['test1'] = "function is loading in div"; } add_action( 'wp_enqueue_scripts', 'ajax_test_enqueue_scripts' ); function ajax_test_enqueue_scripts() { wp_enqueue_script( 'test', plugins_url( '/test.js', __FILE__ ), array('jquery'), '1.0', true ); wp_localize_script( 'test', 'testing', array( 'ajax_url' => site_url() )); } 

И ваш JavaScript:

 (function($) { $(document).on( 'click', 'a.mylink', function( event ) { $.ajax({ url: testing.ajax_url + '/wp-json/aido14/my_path', data : { parameter-here : value-here }, success : function( response.test1 ) { jQuery('#user_reponse').html( response ); } }); }) })(jQuery); 

Теперь вы получите тот же результат, посетив /wp-json/aido14/my_path . Четкий ответ JSON, который можно использовать даже в мобильных приложениях.

И, как вы можете видеть, вы можете передавать несколько ответов в одном запросе, сохраняя их в массиве. Это пригодится, например, в формах контактов и входа.