我正在创建一个wordpress插件,它可以获取一些数据然后回显json_encode
。
这是通过创建一个函数并从短代码调用它来完成的。
短信代码正在从wordpress页面注入空白页面模板。
我正在尝试在shortcode插件的函数中将头设置为application / json,但是这是忽略的,内容类型仍然设置为HTML / TEXT。
我以这种方式设置标题:
header('Content-Type: application/json');
整个插件看起来像这样:
<?php function abc_func(){
header('content-type: application/json; charset=utf-8');
$abc_array = array(
'abc' => $abc
);
echo json_encode($abc_array);
}
add_shortcode('abc_shortcode', 'abc_func');
?>
答案 0 :(得分:0)
如果在设置标题之前(或在插件代码之前),可能会导致某些数据被发送到输出,请确保在此之前设置标题。
答案 1 :(得分:0)
检查php.ini文件中的output_buffering设置。如果不是 设置为&#34;关闭&#34; PHP会自动为您执行输出缓冲。 将它设置为off并在header命令之前回显一些东西,然后你 应该看到&#34;经典错误&#34;。
答案 2 :(得分:-1)
试试这个。
header('content-type: application/json; charset=utf-8');
以后是否有任何地方更改了内容类型?
编辑2017-03-02
Content-type not working in PHP
检查php.ini文件中的output_buffering设置。如果不是 设置为“off”比PHP自动为您执行输出缓冲。 将它设置为off并在header命令之前回显一些东西,然后你 应该看到“经典错误”。