Jetpack Infinite Scroll игнорировать уже отображенные сообщения

Я использую Infinite Scroll от JetPack на главной странице нашего сайта, и он работает нормально, но я также хочу отображать там определенные сообщения.

Если сообщение отображается за пределами бесконечного цикла, я хочу удалить его, чтобы не было дублирования.

У меня есть глобальный массив, настроенный с использованием bm_ignoreposts, и я добавил его в рендер с бесконечным циклом, но по какой-то причине он не работает. Вот код

functions.php

Бесконечный рендер.

add_filter( 'infinite_scroll_archive_supported', 'tweakjp_custom_is_support' );

function mm_infinite_scroll_render() {
global $post;
while ( have_posts() ) : the_post();
bm_ignorePost($post->ID);
get_template_part( 'content-inf' );
endwhile;
}

Запрос

function mm_infinite_scroll_query_args($args) {
$new_args = array(
'posts_per_page'   => $args['posts_per_page'],
'paged'   => $args['paged'],
'orderby'          => 'date',
'order'            => 'DESC',
'post_type'        => array( 'post', 'features', 'it_hardware', 'videos' ),
'post_status'      => 'publish',
);

return $new_args;
}

Для справки вот код игнорирования постов:

function bm_ignorePost ($id) {
if (!is_page()) {
global $bmIgnorePosts;
$bmIgnorePosts[] = $id;
}
}

0

Решение

Я решил больше не использовать JetPack и перейти к пользовательской версии Javascript, которая использует AJAX для загрузки новых сообщений, выполняющих новый запрос.

Говоря о поддержке Jetpack, они считают, что это невозможно в зависимости от того, как работает плагин.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]