#javascript #php #jquery #ajax #wordpress
Вопрос:
Я использую плагин snippets вместе с Elementor. У меня есть функция ajax, настроенная в виде фрагмента, подобного этому:
add_action( 'wp_ajax_get_slug_from_id', 'get_slug_from_id' ); add_action( 'wp_ajax_nopriv_get_slug_from_id', 'get_slug_from_id' ); function get_slug_from_id() { return url_to_postid( $_POST['slug'] ); die(); }
И я встраиваю некоторый jQuery на страницу, чтобы попытаться получить идентификаторы сообщений, подобные этому:
lt;scriptgt; (function($){ $(window).on('load',function(){ $('.ee-calendar-skin--default .ee-calendar__day__event__name a').each(function(){ let slug = $(this).attr('href').match( /([^/]*)/[^/]*$/ )[1]; $.post( wp.ajaxurl, { 'action': 'get_slug_from_id', 'slug': slug }, function(response) { console.log(response); } ); }); }); })(jQuery); lt;/scriptgt;
Это просто возвращает HTML-код страницы, и если я изменюсь wp.ajaxurl
на '/wp-admin/admin-ajax.php'
него, он просто вернется 0
.
Есть идеи, где я ошибаюсь?
Ответ №1:
В конце концов я понял это. Изменение return
на echo
, казалось, было решением проблемы.