使用WP REST API创建新用户并声明元对象

时间:2018-01-10 作者:Danilo P. da Silva

我在这里苦苦思索一个问题。我正在发送POSThttp://localhost/wp-json/v2/wp/users/ 用这个JSON 数据:

{
    "username" : "johndoe",
    "email": "[email protected]",
    "password": "qwerty",
    "meta": {
        "icq": "11223344"
    }

}
但当我去看结果时meta 对象为空。我使用一个插件实现了目标,但该插件通过cookie 我还有一个插件JWT 身份验证,所以我认为是一个任务的多个插件。

有人有同样的问题吗?甚至在插件的官方文档中,我也没有找到解决方案。

1 个回复
最合适的回答,由SO网友:Danilo P. da Silva 整理而成

刚刚在另一个堆栈溢出问题中找到了解决方案。使用函数register_meta():

register_meta(\'user\', \'icq\', array(
  "type" => "string",
  "show_in_rest" => true
));
现在,我可以使用以下命令发出请求:

{
    "username" : "johndoe",
    "email": "[email protected]",
    "password": "qwerty",
    "meta": {
        "icq": "11223344"
    }

}
答案是:

{
    "id": 49,
    "username": "johndoe",
    "name": "johndoe",
    "first_name": "",
    "last_name": "",
    "email": "[email protected]",
    "url": "",
    "description": "",
    "link": "http://localhost/author/johndoe/",
    "locale": "en_US",
    "nickname": "johndoe",
    "slug": "johndoe",
    "roles": [
        "subscriber"
    ],
    "registered_date": "2018-01-13T11:53:57+00:00",
    "capabilities": {
        "read": true,
        "level_0": true,
        "subscriber": true
    },
    "extra_capabilities": {
        "subscriber": true
    },
    "avatar_urls": {
        "24": "http://2.gravatar.com/avatar/29a1df4646cb3417c19994a59a3e022a?s=24&d=mm&r=g",
        "48": "http://2.gravatar.com/avatar/29a1df4646cb3417c19994a59a3e022a?s=48&d=mm&r=g",
        "96": "http://2.gravatar.com/avatar/29a1df4646cb3417c19994a59a3e022a?s=96&d=mm&r=g"
    },
    "meta": {
        "icq": [
            "11223344"
        ]
    },
    "_links": {
        "self": [
            {
                "href": "http://localhost/wp-json/wp/v2/users/49"
            }
        ],
        "collection": [
            {
                "href": "http://localhost/wp-json/wp/v2/users"
            }
        ]
    }
}
如果我想在中显示/编辑/wp-admin/ 我也只是使用这个函数:

function more_contactmethods( $contactmethods ) {
    $contactmethods[\'icq\'] = \'ICQ\';
    return $contactmethods;
}

add_filter( \'user_contactmethods\', \'more_contactmethods\' );

结束

相关推荐

PHP通知:未识别的索引

创建自定义帖子类型的新帖子时debug.log 充满了PHP Notice: Unidentified index: 每个元字段的警告。这个问题以前已经问过并回答过了here 我在那里实现了解决方案,但每次我创建这种类型的新帖子时,我仍然会看到debug.log.save方法的代码如下:/** Listener for saving post */ public function save() { $post_type_name = $this->post_type_name