Estoy usando el complemento de fragmentos junto con Elementor. Tengo una función ajax configurada como un fragmento como este:
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(); }Y estoy incrustando algo de jQuery en una página para tratar de recuperar las ID de publicación de esta manera:
<script> (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); </script> Esto solo devuelve el HTML de la página, y si cambio wp.ajaxurl a '/wp-admin/admin-ajax.php' simplemente devuelve 0 .
¿Alguna idea de dónde me estoy equivocando?
Me di cuenta de esto al final. Cambiar return to echo parecía ser la solución.