Приветствую! Я пытаюсь по клику на ссылку вывести пост в определенный див. Делаю я это следующим образом:
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 пагинацию.