当排除第一页上的一个时,避免在第二页上重复开机自检

时间:2015-09-17 作者:Eirik

在我们正在开发的网站上,Ajax/JavaScript激活了无限滚动。

$(\'#inifiniteLoader\').show(\'fast\');
$.ajax({
    url: "<?php bloginfo(\'wpurl\') ?>/wp-admin/admin-ajax.php",
    type:\'POST\',
    data: "action=infinite_scroll&cat=\'<?php echo $cat_id ?>\'&exclude=\'<?php 
        echo get_the_ID() ?>\'&page_no="+ pageNumber + \'&loop_file=loop\', 
    success: function(html){
        $(\'#inifiniteLoader\').hide(\'1000\');
        $("#primary").append(html); // This will be the div where our content will be loaded
    }
});
在整个网站上,这是可行的,但在单个页面上,显示帖子,然后将该类别中的所有其他帖子(帖子除外)显示为缩略图,这是一个问题。

这个WP_Query 排除了相关职位:

$args = array ( \'cat\' => $catId, \'post__not_in\' => $postid );
$custom_query = new WP_Query( $args ); 
这也可以,但分页不起作用。

示例:Listing of professors

网格应该显示一页8个拇指。底部的3形成第2页。单击缩略图并输入帖子时,拇指(当前除外)会重复。正如您所看到的,分页出现了一些问题,因为当前页面被排除在外,第一页显示了第2页中的一个页面。这是第2页上的第一篇帖子,导致了两篇帖子。

如果我更改loop.php 要跳过第一篇文章,只会显示七篇,并且不会填充网格。

函数中的查询如下所示,并且还排除了当前帖子:

function wp_infinitepaginate() {
    $loopFile       = $_POST[\'loop_file\'];
    $paged          = $_POST[\'page_no\'];
    $cats           = $_POST[\'cat\'];
    $exclude        = $_POST[\'exclude\'];
    $posts_per_page = get_option( \'posts_per_page\' );

    $showposts = $posts_per_page;
    $offset = ( ( $showposts * $paged ) - $showposts );

    $args = array(
        \'cat\'            => $cats,
        \'posts_per_page\' => $showposts,
        \'offset\'         => $offset,
        \'post__not_in\'   => array( $exclude ),
    );

    # Load the posts
    //query_posts( array( \'paged\' => $paged ) );
    query_posts( $args );

    get_template_part( $loopFile );

    wp_reset_query();   
    exit;
}
有什么建议吗?

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

参数字符串中有单引号-为了清晰起见,请使用对象:

$.ajax({
    data: {
        action: "infinite_scroll",
        cat: "<?php echo $cat_id ?>",
        exclude: "<?php the_ID() ?>",
        page_no: pageNumber,
        loop_file: "loop"
    }
});

相关推荐

exclude roles from overview

我在一个新网站上重新使用了一些旧代码,在那里我以最后一张帖子图片为背景显示列表中的所有用户。这一切都很好(我知道get\\u users\\u of\\u blog不受欢迎,但当我使用get\\u users时,我的代码会中断)。。。<?php $blogusers = get_users_of_blog(); if ($blogusers) { foreach ($blogusers as $bloguser) { $args = array( &#