我正在使用wordpress与JSON REST API插件(http://wordpress.org/plugins/json-rest-api/) .
我能够创建自定义 endpoints . 在这种情况下,我创建 endpoints 以显示5个用户 .
这是我的代码:
class JSON_API_Pmbs_Controller
{
public function user_search()
{
global $wpdb;
$query = "SELECT * FROM pmbsn_users LIMIT 0,3";
$blogusers = $wpdb->get_results($query);
$return_array = array();
foreach ($blogusers as $user)
{
$avatar_url = get_avatar_url ( get_the_author_meta($user->ID), $size = '50' );
$current_array = array(
'thumbnail' => $avatar_url,
'display_name' => $user->display_name,
'user_url' => site_url().'/members/'.$user->user_login
);
array_push($return_array, $current_array);
}
$echo_json = json_encode($return_array, JSON_PRETTY_PRINT);
echo $echo_json;
}
}
这是JSON结果:
[
{
"thumbnail": "http:\/\/0.gravatar.com\/avatar\/?d=identicon&s=50",
"display_name": "PMBS Admin",
"user_url": "http:\/\/localhost\/web_pmbsnetwork\/members\/pmbsadmin"
},
{
"thumbnail": "http:\/\/0.gravatar.com\/avatar\/?d=identicon&s=50",
"display_name": "Johan HS",
"user_url": "http:\/\/localhost\/web_pmbsnetwork\/members\/johan"
},
{
"thumbnail": "http:\/\/0.gravatar.com\/avatar\/?d=identicon&s=50",
"display_name": "Seno Adi W",
"user_url": "http:\/\/localhost\/web_pmbsnetwork\/members\/seno"
}
]null
你们可能会注意到json结果中有一个奇怪的“空”文本 .
经过调试,我发现它来自 global $wpdb
.
我一直在做:
-
包括wp-load.php(http://wordpress.org/support/topic/wpdb-returning-null)
-
包括所有(可能需要)的文件(Using WPDB in standalone script?)
-
设置全局$ wpdb = "foo"($wpdb is null even after 'global $wpdb)
但没有成功 . 如何在JSON结果的末尾删除空文本?
谢谢 .
2 回答
所以最后我做了一个非常肮脏的方式;
卸载JSON REST API插件
制作新文件(例如:
wordpress-root/api/get_user.php
)将控制器方法内的脚本移动到
get_user.php
用
include('../wp-load.php');
替换global $wpdb
然后
$wpdb
的奇怪的空文本消失了 .对于那些遇到这个问题的人,我强烈不推荐我的答案,这只是快速的脏修复 .
我认为问题是你的非utf8数据 .