感谢您抽出时间帮助我。
我有一个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
答案 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;