我试图使用我的wordpress主题无限滚动,但它不起作用

时间:2014-02-27 14:42:24

标签: jquery wordpress wordpress-plugin wordpress-theming

感谢您抽出时间帮助我。

我有一个wordpress网站:http://techchef.org/bridco/,在这个网站上我使用的是wordpress 3.8.1;在主题中我想使用无限滚动;我尝试使用不同的插件,如wp_infinitescroll,滚动插件;没有任何工作,所以我尝试使用自定义方式来完成它。

所以我使用本教程中提到的步骤http://code.tutsplus.com/tutorials/how-to-create-infinite-scroll-pagination--wp-24873;

然而我不确定,但看起来在wordpress 3.8.1中需要进行小改动,如下所述,

在我们使用的查询帖子的旧wordpress版本中 query_posts(array('paged' => $paged, 'post_status' => 'publish'));

在我们使用的查询帖子的新wordpress版本中 query_posts(array('page' => $paged, 'post_status' => 'publish'));

而不是“paged”我们使用“page”

我尝试了但是它也不起作用,所以我把它转回原来的那个“分页”

对于无限滚动我使用

对于无限我使用下面提到的代码

在function.php中

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

    # Load the posts

    query_posts(array('paged' => $paged, 'post_status' => 'publish'));
    get_template_part( $loopFile );

    exit;
}


add_action('wp_ajax_infinite_scroll', 'wp_infinitepaginate');           // for logged in user
add_action('wp_ajax_nopriv_infinite_scroll', 'wp_infinitepaginate');    // if user not logged in

在header.php中,我使用了

<script type="text/javascript">
function loadArticle(pageNumber) {
    jQuery.ajax({
        url: "<?php bloginfo('wpurl') ?>/wp-admin/admin-ajax.php",
        type:'POST',
        data: "action=infinite_scroll&page_no="+ pageNumber + '&loop_file=loop', 
        success: function(html){
            jQuery("#main .container").append(html);    // This will be the div where our content will be loaded
        }
    });
    return false;
}
</script>


<script type="text/javascript">
            jQuery(window).scroll(function(){
                    if  (jQuery(window).scrollTop() == jQuery(document).height() - jQuery(window).height()){
                          // run our call for pagination
                    }
            }); 
</script>

但它不起作用,请帮助,指导我做错了什么,或者缺少什么,即使它没有显示任何js错误,但我在这里发现它给出0值 http://techchef.org/bridco/wp-admin/admin-ajax.php

2 个答案:

答案 0 :(得分:0)

您错过了部分js来调用loadArticle以及要加载哪个pageNumber

   var count = 2;//for first load
        $(window).scroll(function(){
                if  ($(window).scrollTop() == $(document).height() - $(window).height()){
                   loadArticle(count);
                   count++;
                }
        }); 

答案 1 :(得分:0)

我已经通过改变function.php中的循环函数来解决这个问题,根据我在下面提到的主题:我用get_query_var('page')更改了get_query_var('paged')

加载帖子

     $loop_paged = (get_query_var('page')) ? get_query_var('page') : $paged;
     query_posts('orderby=date&order=ASC&paged=' . $loop_paged);

                            if ( have_posts() ) :
                                while ( have_posts() ) : the_post(); 
                                    get_template_part( 'content', get_post_format() );
                                endwhile; 
                                echo '</ul></div>
                                <div style="clear: both"></div>';
                                                       endif;