Есть загрузка новостей по кнопке с помощью AJAX.
Связка такая:
1) slugname-news.php содержит основной цикл вывода записей по категории, в конце цикла кнопка "Загрузить далее".
2) Ajax запрос
var button = $('#loadmore a'),
paged = button.attr("data-paged"),
cat = button.attr("data-category"),
maxPages = button.attr("data-max-pages"),
loadmore = $('#loadmore');
button.click(function (event) {
event.preventDefault();
$.ajax({
type: 'POST',
url: '<?php echo admin_url("admin-ajax.php"); ?>',
data: {
paged: paged,
category: cat,
action: 'loadmore'
},
beforeSend: function (xhr) {
button.addClass('border_none');
button.html('<img src="ссылка на gif загрузчик"/>');
},
success: function (data) {
button.removeClass('border_none');
paged++;
button.parent().before(data);
button.text('Загрузить ещё');
if (paged == maxPages) {
button.remove();
}
}
});
});
3) регистрация action в function.php (тут же и функция вывода записей)
add_action('wp_ajax_loadmore', 'true_loadmore');
add_action('wp_ajax_nopriv_loadmore', 'true_loadmore');
function true_loadmore()
{
$category_id = $args_case['cat'];
$paged = !empty($_POST['paged']) ? $_POST['paged'] : 1;
$paged++;
$args_load = array(
'posts_per_page' => 9,
'paged' => $paged,
'orderby' => 'date',
'cat' => $category_case
);
query_posts($args_load);
while (have_posts()) : the_post();?>
<a class="case_block" href="<?php the_permalink(); ?>">
<div class="case_box">
<?php if (has_post_thumbnail( $post->ID ) ): ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
<img src="<?php echo $image[0]; ?>">
<?php endif; ?>
</div>
<div class="case_box">
<div class="case_box_inner title_case_box">
<?php the_title(); ?>
</div>
<div class="case_box_inner">
<?php if ( have_rows( 'titulnyj_blok' ) ) : ?>
<?php while ( have_rows( 'titulnyj_blok' ) ) : the_row(); ?>
<?php if ( have_rows( 'meta' ) ) : ?>
<?php while ( have_rows( 'meta' ) ) : the_row(); ?>
<?php the_sub_field( 'metki' ); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
</div>
</div>
</a>
<?php
endwhile;
die; ?>
}
Сам скрипт отрабатывает корректно, я пытался передать в data-category id самой категории, но дальше передать её в переменную в цикл функции true_loadmore() не получается
$category_id = $args_case['cat']; - смысловой пример того, что хочу получить