[英]my Load More Posts Ajax Button in Wordpress is not working
我需要點擊按鈕顯示更多帖子
當我單擊檢查->網絡上的按鈕時,一切正常,或者至少我猜是好的
我只是不知道為什么我的帖子沒有顯示在頁面上
這是我的密碼
主要內容:
<div id="all-posts" class="posts-container">
<?php get_template_part('loops/loop','all'); ?>
<div class="load-more-content">
<a data-page="2" href="" class="load-more"> More >> </a>
</div>
</div>
阿賈克斯:
//For More Content
add_action('wp_ajax_load_more_content', 'load_more_content');
add_action('wp_ajax_nopriv_load_more_content', 'load_more_content');
function load_more_content() {
$page = intval( $_POST['page'] );
$post_per_page = 1;
$offset = ( $page - 1 ) * $post_per_page;
$output_html = '';
$load_more_agrs = array(
'post_type' => array('post','download'),
'offset' => $offset,
'posts_per_page' => $post_per_page
);
$load_more_query = new WP_Query( $load_more_agrs );
if ( $load_more_query->have_posts() ):
while ( $load_more_query->have_posts() ):$load_more_query->the_post();
$output_html .= ' <a class="post-link" href="' . the_permalink() . '">';
$output_html .= '<div class="post wow fadeInUp">';
$output_html .= '<div class="post-inner">';
$output_html .= '<div class="post-thumb">';
get_the_post_thumbnail( $load_more_query->post->ID, 'main-thumbnail' );
$output_html .= '</div>';
$output_html .= '<span class="post-title">' . get_the_title( $load_more_query->post->ID ) . '</span>';
$output_html .= '</div>';
$output_html .= '<div class="post-meta" >';
$output_html .= '<span ><i class="fa fa-clock-o" ></i>' . get_the_date( 'y,m,d', $load_more_query->post->ID ) . '</span>';
$output_html .= '<span><i class="fa fa-user"></i>' . get_the_author() . '</span>';
$output_html .= '<span><i class="fa fa-eye"></i>' . get_post_view( get_the_ID() ) . '</span>';
$output_html .= '<span><i class="fa fa-thumbs-o-up"></i></span>';
$output_html .= '</div>';
$output_html .= '</div>';
$output_html .= '</a>';
endwhile;
endif;
$count = $load_more_query->found_posts;
wp_reset_postdata();
$result = array();
$result['count'] = $count;
$result['content'] = $output_html;
die( json_encode( $result ) );
}
我認為當我添加dataType:'json',
我的問題是Ajax代碼dataType:'json',
出現錯誤。 我的意思是執行錯誤函數,所以我必須添加contentType: 'application/json',
但是我的Response Only只有0。
Ajax代碼:
$(document).on('click','.load-more', function (event) {
event.preventDefault();
var $this = $(this);
$this.text('Loading...');
var $page = parseInt($this.data('page'));
$.ajax({
url: data.ajax_url,
type:'post',
/*contentType: 'application/json',*/
//dataType:'json',
data: {
action: 'load_more_content',
page: $page
},
success: function (response) {
if (parseInt(response.count) > 0) {
$this.parent().before(response.content);
$this.data('page', parseInt($page + 1));
}
$this.text('Done!');
},
error: function (err) {
alert('Error is : '+ err.statusText);
}
});
});
});
網絡標簽中顯示的響應不是正確的JSON。
該問題是由使用回顯其結果的the_permalink()引起的。 您應該使用get_permalink()返回一個字符串。
同樣,盡管與該特定問題無關,但是get_the_post_thumbnail()的結果未附加到$ output_html。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.