我的functions.php
我的函数中有一个空的AJAX响应。这是我处理AJAX请求的函数。
function dynamic_date() {
check_ajax_referer('dynamic_date_nonce');
$fdate = $_GET['my_date'];
$date[] = explode("-",$fdate);
$year = $date[0];
$month = $date[1];
$args = array('year' => $year,'monthnum' => $month);
$loop = new WP_Query($args);
if($loop->have_posts()) {
while($loop->have_posts()) {
the_post();
echo get_template_part( 'content', get_post_format() );
}
} wp_reset_query();
die('');
}
这是AJAX电话:
function _do_ajax(obj) {
var element = $(obj); //our link object
var url = wpAjax.unserialize(element.attr('href'));
var s = {};
s.response = 'ajax-response';
s.type = "GET";
s.url = sortbydate.ajax_url;
s.dataType = "HTML";
s.data = $.extend(s.data, { action: url.action, _ajax_nonce: url._wpnonce, my_date: url.my_date });
s.global = false;
s.timeout = 30000;
s.success = function(data) {
$("body.blog #content").fadeIn(500).append(data);
alert(data);
} //End success
s.error = function(r) {
alert("Epic Fail!");
}
$.ajax(s);
} //end _do_ajax
$.get_my_comments.init();
});
现在,如果我删除wordpress循环并且只是回显$ year和$ month,它会附加到容器并且工作正常。当我添加循环时,虽然我得到一个空响应但没有显示任何内容。
我是否正确处理了回复?
答案 0 :(得分:1)
在您的代码中
get_template_part( 'content', get_post_format() );
因此,这将查找content-format.php
文件,在这种情况下formats
是
aside, chat, gallery, link, image, quote, status, video, audio
因此,根据帖子的format
,WordPress
会在模板的根文件夹中查找文件。因此,请确保您拥有相应的文件,例如content-aside.php
,content-chat.php
等等(如果您有这些类型的帖子)。对于默认/普通帖子,get_post_format()
会返回false
,因此请尝试使用
$format = get_post_format();
if ( false === $format ) {
$format = 'standard';
}
get_template_part( 'content', $format );
最后,请确保根据您的查询提供帖子,只需var_dump($loop)
,看看您是否真的得到了任何结果,或者它是否为空。
如果您当时没有任何post-format
个特定帖子,您可以使用
get_template_part( 'content', 'loop' );
并将您的文件名更改为content-loop.php
,因此当您致电WordPress
时,content-loop.php
会查找/ include content.php
或get_template_part( 'content', 'loop' );
文件。