Я в замешательстве относительно того, что здесь происходит, у меня есть 11 сообщений, с 3 первоначально загруженными и 3, которые загружаются каждый раз, когда я просматриваю нижнюю часть страницы, пока не покажутся все 11. Это отлично.Wordpress цикл заканчивается сообщений?
Проблема возникает, когда я нажимаю кнопку и динамически загружаю первые 3 сообщения на страницу еще раз. Это загружается через .html (данные).
Я делаю это на странице, называемой архивом.
Это как если бы страница архива знала, что я отобразил все 11 сообщений раньше и отказывается начинать заново, если не обновить страницу.
Как сбросить цикл или сообщить Wordpress, что я хочу начать с 3-го сообщения?
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();
}
Некоторый код поможет. – jraede
Я слышал, что если вы действительно этого хотите, Wordpress будет слушать вас. Серьезно, у нас нет кода, мы не знаем, находится ли счетчик в локальном js var или на сервере или как вы справляетесь с ним, и как выполняются вызовы для получения большего количества сообщений, и кто их обрабатывает в server –
@CarlosRobles Я добавил код. Причина, по которой я не добавляла код в первый раз, была потому, что мне показалось, что я ошибался в логике Loop, и мне просто объяснялось. Как я мог связать какое-то событие click, которое сбрасывает цикл wordpress. – UzumakiDev