Добрый день.
Я создал в вордпрессе кастомный тип постов, для этого кастомного типа постов написал пагинатор на аяксе. Код пагинатора в файле functions.php выглядит следующим образом:
add_action('wp_ajax_paginate_action', 'paginator_callback');
function paginator_callback()
{
$args = [
'posts_per_page' => $_POST['limit'],
'offset' => $_POST['offset'],
'category' => '',
'category_name' => '',
'orderby' => 'date',
'order' => 'DESC',
'include' => '',
'exclude' => '',
'meta_key' => '',
'meta_value' => '',
'post_type' => 'blog_post',
'post_mime_type' => '',
'post_parent' => '',
'author' => '',
'author_name' => '',
'post_status' => 'publish',
'suppress_filters' => true
];
$posts = get_posts($args);
print_r(renderView($posts)); //функция кастомная, отвечающая за вывод загруженных постов в HTML
wp_die();
}
function renderView($posts)
{
$view = '';
foreach ($posts as $post) {
$postMeta = get_post_meta($post->ID);
$timeToRead = $postMeta['time_to_read'][0];
$image_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'single-post-thumbnail');
$single_post = '
<div class=" vc_col-lg-4 vc_col-md-4 vc_col-sm-6 vc_col-xs-12 blog-post-masonry masonry-block post-offset norebro-card-wrapper grid-item" data-lazy-item="true">
<div class="blog-grid grid-1 boxed">
<header>
<a href="https://studiosoftware.com/blog/billing-model-choose-company-discuss-fp-tm-fbsc/">
<img src="' . $image_src[0] . '" alt="' . null . '">
</a>
' . getPostTags($post) . '
</header>
<div class="content">
<h3>
<a href="https://studiosoftware.com/blog/' . $post->post_name . '/">
' . $post->post_title . '
</a>
</h3>
<p>
' . getPostPreview($post) . '…
</p>
</div>
<footer>
<span class="data">' . getPostDateTime($post) . '</span>
<strong>—</strong>
<span class="data">' . $timeToRead . ' min. to read</span>
</footer>
</div>
<div class="clear"></div>
</div>
';
$view .= $single_post;
}
return ' <div class="norebro-masonry" data-lazy-container="true" style="position: relative;">' . $view . '</div>';
}
Писал я его согласно документации с сайта ВП. При этом периодически пагинатор не работает, а в консоли появляется такая ошибка
POST https://my-site.com/wp-admin/admin-ajax.php 400 ()