Javascript Wordpress循环没有帖子了?
我对这里发生的事情感到困惑,我有11篇帖子,其中3篇最初加载,3篇每次我滚动到页面底部都会加载,直到11篇都显示出来。这很好 当我点击一个按钮并将前3篇文章再次动态加载到页面上时,问题就出现了。这是通过.html(数据)加载的 我在一个叫做档案的“页面”上做这件事 这就好像存档页面知道我之前显示了所有11篇文章,并且拒绝重新开始,除非我刷新页面 如何重置循环,或者告诉wordpress我想再次从第三篇文章开始Javascript Wordpress循环没有帖子了?,javascript,php,jquery,wordpress,Javascript,Php,Jquery,Wordpress,我对这里发生的事情感到困惑,我有11篇帖子,其中3篇最初加载,3篇每次我滚动到页面底部都会加载,直到11篇都显示出来。这很好 当我点击一个按钮并将前3篇文章再次动态加载到页面上时,问题就出现了。这是通过.html(数据)加载的 我在一个叫做档案的“页面”上做这件事 这就好像存档页面知道我之前显示了所有11篇文章,并且拒绝重新开始,除非我刷新页面 如何重置循环,或者告诉wordpress我想再次从第三篇文章开始 jQuery(document).ready(function($){ $("
jQuery(document).ready(function($){
$("a.sort-all").bind("click", function(e) {
load_posts(this);
e.preventDefault();
});
function load_posts() {
var ajax_url = $('.sort-all').attr('data-all-url');
$.ajax({
dataType: "HTML",
url: ajax_url,
type:'POST',
data:{
action: 'data_click_all',
offset: offset
},
success:function(data) {
$('#content').html(data);
}
});
}
var ajax_url = $('.sort-all').attr('data-all-url');
var offset = 0;
$('#content').waypoint(function(direction) {
if(direction === 'down'){
offset = parseInt(offset) + 3;
$.ajax({
dataType: "HTML",
url: ajax_url,
type:'POST',
data:{
action: 'data_scroll_all',
offset: offset
},
success:function(data) {
$('#content').append(data);
$.waypoints('refresh');
}
});
}
}, {
offset: 'bottom-in-view'
});
});
if (!class_exists('load_posts')) {
class load_posts {
/**
* PHP 4 Compatible Constructor
*/
function load_posts(){$this->__construct();}
/**
* PHP 5 Constructor
*/
function __construct(){
add_action('wp_ajax_data_scroll_all', array(&$this, 'data_scroll_all'));
add_action('wp_ajax_nopriv_data_scroll_all', array(&$this, 'data_scroll_all'));
//----//
add_action('wp_ajax_data_click_all', array(&$this, 'data_click_all'));
add_action('wp_ajax_nopriv_data_click_all', array(&$this, 'data_click_all'));
}
function data_click_all(){
global $post;
$offset = $_POST['offset'];
$args = array('posts_per_page' => 3, 'offset' => $offset, 'category__not_in' => 1,'orderby' => 'date');
$myposts = get_posts( $args );
foreach( $myposts as $post ) {
setup_postdata($post);
get_template_part( 'content-archive' );
} wp_reset_query();
die('');
}
function data_scroll_all(){
global $post;
$offset = $_POST['offset'];
$args = array('posts_per_page' => 3, 'category__not_in' => 1, 'offset' => $offset, 'orderby' => 'date');
$myposts = get_posts( $args );
foreach( $myposts as $post ) {
setup_postdata($post);
get_template_part( 'content-archive' );
} wp_reset_query();
die('');
}
}
}
if (class_exists('load_posts')) {
$newload_posts = new load_posts();
}
当您单击一个按钮并再次将前3篇文章动态加载到页面上时,必须重置变量偏移量。同时刷新航路点
$("a.sort-all").bind("click", function(e) {
offset=0;
load_posts(this);
$.waypoints('refresh');
e.preventDefault();
});
如果它不起作用,很可能你的帖子数量没有错误,但是另一个错误阻止了一切工作
请在输入航路点时添加警报
$('#content').waypoint(function(direction) {
alert("current: "+offset);
///...
一些代码会有帮助。我听说如果你真的这么做,wordpress会听你的。说真的,我们没有任何代码,我们不知道计数器是在本地js var中还是在服务器端,或者您如何处理它,检索更多帖子的调用是如何完成的,以及谁在服务器端处理它们server@CarlosRobles我添加了一些代码。我第一次没有添加代码的原因是因为它似乎是我缺少的一些循环逻辑,需要向我解释。就像我可以绑定某种点击事件来重置wordpress循环一样。谢谢。我试过了,但仍然不起作用,比如说,如果我重新加载页面并滚动一次,它会加载另外3篇文章,然后单击ajax按钮,它会再次将原来的3篇文章加载到容器中,但它似乎不再识别航路点。所以,是的,航路点肯定出了问题,单击ajax按钮时,警报不再工作。啊,我修复了它,我没有添加$.waypoints('refresh');单击事件ajax success。。。该死的。谢谢你的帮助。