<?php
/*
@package subhasishlive theme
========================
AJAX FUNCTIONS
========================
*/
add_action( \'wp_ajax_nopriv_sunset_load_more\', \'sunset_load_more\' );
add_action( \'wp_ajax_sunset_load_more\', \'sunset_load_more\' );
function sunset_load_more() {
$paged = $_POST["page"]+1;
$query = new WP_Query( array(
\'post_type\' => \'Allkitchenposts\',
\'order\' => \'DESC\',
\'post_status\' => \'publish\',
\'paged\' => $paged,
\'posts_per_page\' => \'10\'
) );
if( $query->have_posts() ):
while( $query->have_posts() ): $query->the_post();
// get_template_part( \'template-parts/content\', get_post_format() );
?>
<div class="col-sm-6 single-post-news">
<div class="single-post-content">
<div class="post-box reveal-block text-left">
<div class="post-box-img-wrap">
<a href="<?php the_permalink(); ?>">
<?php
if (has_post_thumbnail( get_the_ID() ) ){
$image = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), \'single-post-thumbnail\' );
?>
<img src="<?php echo $image[0]; ?>" alt="" class="img-responsive"/>
<?php
}else{
?>
<img src="<?php bloginfo(\'template_directory\'); ?>/img/news-thumb-01.jpg" class="img-responsive" />
<?php
}
?>
</a>
</div>
<div class="post-box-caption">
<div class="post-box-title text-ubold"><a href="<?php the_permalink(); ?>" class="text-gray-base"><?php the_title(); ?></a></div>
<ul class="list-inline post-box-meta list-inline-dashed list-inline-dashed-xs text-extra-small-10 offset-top-12 text-silver-chalice">
<li class="text-uppercase"><?php echo meks_time_ago(); ?></li>
<li class="p text-uppercase"><span>by <a href="testimonials.html"><?php the_author(); ?></a></span></li>
</ul>
</div>
</div>
</div>
</div>
<?php
endwhile;
endif;
wp_reset_postdata();
die();
}
?>
与“post\\u type”=>“Allkitchenposts”不同,我想根据我的帖子类型动态设置此值,以便我可以在不同的归档页面中使用ajax加载内容,就像我在归档Allkitchenposts中所做的那样。php
<div class="col-xs-12 text-center">
<a class="btn btn-lg btn-default sunset-load-more" data-page="1" data-url="<?php echo admin_url(\'admin-ajax.php\'); ?>">Load More...</a>
</div>
下面是我的ajax加载。js文件
jQuery(document).ready( function($){
$(document).on(\'click\',\'.sunset-load-more\', function(){
// this refers to the button itself
var that = $(this);
// reference to the data-page attribute value of the button
var page = $(this).data(\'page\');
// next page reference
var newPage = page+1;
// reference to the data-url attribute value of the button
var ajaxurl = that.data(\'url\');
$.ajax({
url : ajaxurl,
type : \'post\', // post method of retriving data
data : {
page : page,
action: \'sunset_load_more\'
},
error : function( response ){
console.log(response);
},
success : function( response ){
that.data(\'page\', newPage);
$(\'.sunset-posts-container\').append( response );
}
});
});
});
我想知道如何通过ajax为不同的自定义帖子类型归档页面加载更多帖子????目前我只能为一个帖子类型做这件事。谢谢:)
最合适的回答,由SO网友:Techno Deviser 整理而成
我在single{post type}上使用了这个。
$t_slug = get_query_var(\'post_type\');
<div class="col-xs-12 text-center">
<a class="btn btn-lg btn-default sunset-load-more" data-page="1" post_type =<?php echo $t_slug ;?> data-url="<?php echo admin_url(\'admin-ajax.php\'); ?>">Load More...</a>
</div>
jQuery(document).ready( function($){
$(document).on(\'click\',\'.sunset-load-more\', function(){
var post_type = $(this).attr(\'post_type\');
// this refers to the button itself
var that = $(this);
// reference to the data-page attribute value of the button
var page = $(this).data(\'page\');
// next page reference
var newPage = page+1;
// reference to the data-url attribute value of the button
var ajaxurl = that.data(\'url\');
$.ajax({
url : ajaxurl,
type : \'post\', // post method of retriving data
data : {
post_type : post_type ,
page : page,
action: \'sunset_load_more\'
},
error : function( response ){
console.log(response);
},
success : function( response ){
that.data(\'page\', newPage);
$(\'.sunset-posts-container\').append( response );
}
});
});
});
function sunset_load_more() {
$post_type = $_POST[\'post_type\'];
$paged = $_POST["page"]+1;
$query = new WP_Query( array(
\'post_type\' => \' $post_type\',
\'order\' => \'DESC\',
\'post_status\' => \'publish\',
\'paged\' => $paged,
\'posts_per_page\' => \'10\'
) );
}