我正在尝试用ajax获取帖子。一切正常,但只显示一个帖子。请检查我的代码并告诉我是否有问题
function ag_get_posts() {
global $post;
$args = array(
\'post_type\' => \'post\',
\'posts_per_page\' => 12,
\'post_status\' => \'publish\',
);
query_posts( $args );
while ( have_posts() ) : the_post();
locate_template( \'post.php\', TRUE, TRUE );
endwhile;
wp_reset_query();
exit;
}
add_action(\'wp_ajax_ag_get_posts\', \'ag_get_posts\');
jQuery:
var data = {
action: \'ag_get_posts\',
};
jQuery.post(AjaxPath.ajaxurl, data, function(response) {
var result = $(response)
Content.html(result);
});
最合适的回答,由SO网友:Milo 整理而成
如果您阅读文档locate_template
你会发现问题所在。
locate_template( $template_names, $load, $require_once );
$require\\u once(布尔)(可选)如果为true,模板文件将加载php require\\u once函数。如果为false,模板文件将加载php require函数。如果$load为false,则此参数无效。默认值:true
PHP不会多次加载模板,因为您已设置$require_once
为真。
用于此目的的一个更简单的API函数是get_template_part
:
get_template_part( \'post\' );