首页 文章

Wordpress全球$ wpdb;返回不需要的'null'文本

提问于
浏览
2

我正在使用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 .

我一直在做:

但没有成功 . 如何在JSON结果的末尾删除空文本?

谢谢 .

2 回答

  • 0

    所以最后我做了一个非常肮脏的方式;

    • 卸载JSON REST API插件

    • 制作新文件(例如: wordpress-root/api/get_user.php

    • 将控制器方法内的脚本移动到 get_user.php

    • include('../wp-load.php'); 替换 global $wpdb

    然后 $wpdb 的奇怪的空文本消失了 .

    对于那些遇到这个问题的人,我强烈不推荐我的答案,这只是快速的脏修复 .

  • 0

    我认为问题是你的非utf8数据 .

    • 尝试将此代码放在SELECT查询之前 .
    $wpdb->query('SET CHARACTER SET utf8');
    

相关问题