我有我的wordpress类别页面,如果他们点击图形,然后更多帖子被装上一些代码 - 在这种情况下,15。
它的伟大工程的第一次,它被按下。 然而,一旦再次按下此键,它不会在下一组的职位(即第三)带来的,但在第2带来的。
据我所知,这个问题是偏移 - 即。 在那里开始。 因此,它被压在第一时间,偏移应为16,第二时间31,第三时间46等等
然而,当我有困难时,通过这个偏移量。
这是JS:
$('#do-show-more-posts').live('click', function(){
if( $(this).data("o-set")){
$offset=$(this).data("o-set");
}else
{
$offset=16 ; //assume this is 16 initially
}
var post_type = $(this).attr('post-type');
var parent = $(this).attr('parent-id');
var offset = $('.article').size();
$(this).fadeTo(0,0);
$('.load-more-posts-wrapper .loader').addClass('show');
$.post( ajaxurl, { action: 'load_more_posts', post_type : post_type, parent : parent, offset : offset }, function(data){
$load_more = $('.load-more-posts-wrapper');
$load_more.find('.loader').removeClass('show');
$load_more.find('.link').removeAttr('style');
var load_more_button = '<div class="load-more-posts-wrapper">' + $load_more.html() + '</div>';
$load_more.remove();
if( data == '' || data == 'udefined' || data == 'No More Posts' || data == 'No $args array created' ){
data = '';
load_more_button = '<div class="load-more-posts-wrapper">There are no more posts.</div>';
setTimeout("$('.load-more-posts-wrapper').fadeTo(1800,0)", 8000 );
}
$('#content').append( data );
$('#content').append( load_more_button );
$(this).data("o-set",$offset);
});
});
这是PHP:
function load_more_posts() {
if( isset($_POST['post_type']) && $_POST['post_type'] == 'publication' ){
$args = array(
'offset' => $_POST['offset'],
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'article',
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => 'related-publication',
'value' => $_POST['parent'],
'meta_compare' => 'IN'
)
)
);
} else if(isset($_POST['post_type']) && $_POST['post_type'] == 'category') {
$args = array(
'cat' => $_POST['parent'],
'offset' => $_POST['offset'],
'post_type' => array('post','article','publication')
);
} else {
// print_r($args);
}
$Query = new WP_Query( $args );
//print_r($Query);
if ( $Query->have_posts() ) {
while ( $Query->have_posts() ) {
$Query->the_post();
get_template_part('loop', 'xxxry');
}
} else {
// print_r($args);
}
exit;
}
我有一个想法,以创建一个会话持有偏移值,但似乎并没有工作。 另外,我不知道的情况下,有人返回该类别的网页我是如何将其删除。
我使用的代码是这样的:
if (isset($_SESSION['posts_start'])){
$_POST['offset']=$_SESSION['posts_start']+15;
$_SESSION['posts_start']=$_POST['offset'];
} else {
$_POST['offset']=15;
$_SESSION['posts_start']=$_POST['offset'];
}
我把在PHP函数的开始。 它似乎没有登记加入的15,如果已经有一个会议。