我知道这类话题有很多内容,但在我的案例中发生的事情很奇怪。
事实是,这没有问题,突然间它没有返回任何东西。 $data
和$postsInCat
具有所需内容,但在回显时,收到的回复为空。
以下是代码:
<?php
header('Content-Type: application/json');
include "wp-blog-header.php";
mb_internal_encoding("UTF-8");
$paged = (get_query_var('page')) ? get_query_var('page') : 1;
$temp = $wp_query;
$wp_query= null;
$args = array(
'posts_per_page' => 20,
'post_type' => 'post',
'paged' => $paged,
'nopaging' => false,
'cat' => $_GET['author']
);
$wp_query = new WP_Query($args);
$data = array();
while ($wp_query->have_posts()) : $wp_query->the_post();
$obj = new stdClass;
$obj->id = $post->ID;
$obj->title = $post->post_title;
$obj->excerpt = substr(strip_tags($post->post_content), 0, 250).'...';
$obj->slug = str_replace('http://187.38.230.170/', '', get_permalink($post->ID));
$obj->author_name = get_user_by('id', $post->post_author)->user_login;
$obj->featured_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'post-thumbnails') );
$obj->date = new DateTime($post->post_date);
$obj->date = $obj->date->format("F d, Y");
array_push($data, $obj);
endwhile;
$postsInCat = get_term_by('id', $_GET['author'], 'category');
echo json_encode(array('data' => $data, 'n_resultados' => $postsInCat->count));
?>
如果我使用$data
函数打印print_r
,则会打印整个内容。
知道发生了什么事吗?
答案 0 :(得分:0)
使用json_last_error()
检查JSON错误。可能有一个不能放在JSON中的角色。我遇到了同样的问题,我使用了这段代码:
<?php
function utf8ize($d) {
if (is_array($d)) {
foreach ($d as $k => $v) {
$d[$k] = utf8ize($v);
}
} else if (is_string ($d)) {
return utf8_encode($d);
}
return $d;
}
?>
你可以做类似的事情:
$array = utf8ize($array);