Почему при ajax загрузке поста я получаю пустой ответ?

Приветствую! Я пытаюсь по клику на ссылку вывести пост в определенный див. Делаю я это следующим образом:
html:
<?php
    $paged = (get_query_var('page')) ? get_query_var('page') : 1;
    $args = array(
        'paged'             =>  $paged,
        'orderby'           => date,
    ); 
    $my_query = new WP_Query( $args );
    while( $my_query->have_posts() ) :
           $my_query->the_post();
?>
    <div class="post">
        <a class="post-href" href="#">
            <h3><?php the_title(); ?></h3>
        </a>
    </div> 
<?php wp_reset_postdata(); ?>
<?php endwhile; ?>

<div id="single-home-container"></div>

<script type="text/javascript">
    var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";
    jQuery(function($) {
        $('body').on('click', '.post-href', function() {
            var data = {
                'action': 'load_post_by_ajax',
            };

            $.post(ajaxurl, data, function(response) {
                $('#single-home-container').append(response);
            });
        });
    });
</script>


Вот какой колбек я написал в functions.php:
add_action('wp_ajax_load_post_by_ajax', 'load_post_by_ajax_callback');
add_action('wp_ajax_nopriv_load_post_by_ajax', 'load_post_by_ajax_callback');

function load_post_by_ajax_callback() {
    while (have_posts()) : the_post(); ?>
        <div class="ajax-post-container">
            <div class="post-thumbnail-background">
                <?php the_post_thumbnail(); ?>
            </div>
            <div class="post-content text-block">
                <?php the_content(); ?>
            </div>
        </div>
    <?php endwhile; 
 
    wp_die();
}


При клике на ссылку в консоли (network) я вижу, что ответ пустой.

Сразу скажу, что код брал готовый и перерабатывал и изначально он был заточен под ajax пагинацию.
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 1
@KingAnton
Потому что дергаете несуществующую функцию
add_action('wp_ajax_load_post_by_ajax', 'load_post_by_ajax');
add_action('wp_ajax_nopriv_load_post_by_ajax', 'load_post_by_ajax');

function load_post_by_ajax() {
//
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы