Jquery 我试图使用无限滚动与我的wordpress主题,但它不工作
谢谢你抽出时间来帮我 我有一个wordpress网站:,在这个网站上我使用wordpress 3.8.1;在主题中我想使用无限滚动;我尝试使用不同的插件,比如wp_infinitescroll,滚动插件;这些工作都没有,所以我试着用一种定制的方式来完成 因此,我在这里使用教程中提到的步骤 但是我不确定,但看起来wordpress 3.8.1中需要做一些小改动,如下所述 在旧的wordpress版本中,我们使用了查询帖子Jquery 我试图使用无限滚动与我的wordpress主题,但它不工作,jquery,wordpress,wordpress-theming,Jquery,Wordpress,Wordpress Theming,谢谢你抽出时间来帮我 我有一个wordpress网站:,在这个网站上我使用wordpress 3.8.1;在主题中我想使用无限滚动;我尝试使用不同的插件,比如wp_infinitescroll,滚动插件;这些工作都没有,所以我试着用一种定制的方式来完成 因此,我在这里使用教程中提到的步骤 但是我不确定,但看起来wordpress 3.8.1中需要做一些小改动,如下所述 在旧的wordpress版本中,我们使用了查询帖子 query_posts(数组('paged'=>$paged,'post_s
query_posts(数组('paged'=>$paged,'post_status'=>'publish'))代码>
在新的wordpress版本中,我们使用了
query_posts(数组('page'=>$paged,'post_status'=>'publish')代码>
我们用“页面”代替“页面”
我试过了,但它也不起作用,所以我把它调回原来的“paged”
对于无限卷轴,我使用
对于infinite,我使用下面提到的代码
在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>
函数loadArticle(页码){
jQuery.ajax({
url:“/wp admin/admin ajax.php”,
类型:'POST',
数据:“action=infinite_scroll&page_no=“+pageNumber+”&loop_file=loop',
成功:函数(html){
jQuery(“#main.container”).append(html);//这将是加载内容的div
}
});
返回false;
}
jQuery(窗口).滚动(函数(){
if(jQuery(window).scrollTop()==jQuery(document).height()-jQuery(window).height()){
//运行分页调用
}
});
但它不起作用,请帮助,指导我我做错了什么,或者遗漏了什么,即使它没有显示任何js错误,但我在这里发现它给出了0值
您错过了调用loadArticle的js部分以及要加载的页码
var count = 2;//for first load
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
loadArticle(count);
count++;
}
});
根据我在下面提到的主题,我在function.php中更改了一个loop函数,从而解决了这个问题:除此之外,我还将get_query_var('paged')更改为get_query_var('page')
装上柱子
$loop\u paged=(获取查询变量('page'))?获取查询变量('page'):$paged;
查询帖子('orderby=date&order=ASC&paged='。$loop\u paged);
如果(have_posts()):
while(have_posts()):the_post();
获取模板部分(“内容”,获取发布格式());
结束时;
回声'
';
endif;
看起来它甚至没有获得导航,或者它没有从ajax数据文件中获得正确的值。现在,您已将窗口滚动部分(在浏览器中检查页面源代码)翻了一番,只在另一部分下翻了一部分。啊,我的坏消息,让我删除它,这样做了,但它不会对它产生影响。尝试使用alert代替ajax调用,看看它是否触发了{alert}('bottom reacted');count++;}先生,您的问题中甚至没有列出这段代码。@Ovidio lacomi尊敬Ovidio,感谢您的关注,但实际上正是因为它没有加载并将正确的数据发送到ajax文件;所以我在这里检查了调用我的主题内容循环,而不是defaut循环。
$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;