doudou201701
2015-10-11 11:09 阅读 78
已采纳

Jetpack Infinite Scroll忽略已经显示的帖子

I am using JetPack's Infinite Scroll on the homepage of our site and it is working fine but I also want to display certain posts on there.

If a post is displayed outside the infinite loop I want it to be removed from the so there is no duplication.

I have a global array set up using bm_ignoreposts and have added it to the infinite loop render but for some reason it is not working. Here is the code.

Functions.php

The infinite renderer.

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;
}

The query

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;
}

For reference here is the ignore posts code:

function bm_ignorePost ($id) {
    if (!is_page()) {
        global $bmIgnorePosts;
        $bmIgnorePosts[] = $id;
    }
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    dongliao2011 dongliao2011 2015-10-19 21:59

    I decided to not use JetPack anymore and go for a custom Javascript version which uses AJAX to load new posts running a new query.

    After speaking to Jetpack support, they believe it is not possible based on how the plugin works.

    点赞 评论 复制链接分享

相关推荐