如何在WordPress Rest Api中向用户正确添加自定义字段?

问题描述 投票:0回答:1

我正在尝试添加一个自定义可更新字段,以显示在用户rest api中。

我设法在GET请求上正确显示了该字段,但在POST请求上没有使用新值进行更新。

这是我在functions.php上的代码:

function slug_add_post_data() {
    register_rest_field('user',
        'ubicaciones',
        array(
            'get_callback' => 'slug_get_field',
            'update_callback' => 'slug_update_field',
            'schema' => array(
                                'description' => 'Ubicaciones usuario',
                                'type' => 'string',
                                'context' => array('view', 'edit')
                            )
        )
    );
}

add_action('rest_api_init', 'slug_add_post_data');

function slug_get_field($user, $field_name, $request) {
  return get_user_meta($user->id, $field_name);
}

function slug_update_field($value, $user, $field_name) {
  if (!$value || !is_string($value)) {
    return;
  }

  return update_user_meta($user->ID, $field_name, strip_tags($value));
}

update_callback函数一定有问题,但是我找不到确切的位置。

知道我在做什么错吗?

谢谢。

wordpress wordpress-rest-api
1个回答
0
投票

我设法使它起作用。这篇文章对我有帮助:https://wordpress.stackexchange.com/questions/293025/curl-post-work-with-user-meta-but-not-the-custom-user-meta

add_action("rest_api_init", function () {


    register_rest_field(
          "user"
        , "ubicaciones"
        ,
        [
            "get_callback" => function ($user, $field_name, $request, $object_type) {

                return get_user_meta($user["id"], $field_name, TRUE);

            },
            "update_callback" => function ($value, $user, $field_name, $request, $object_type) {

                update_user_meta($user->ID, $field_name, $value);

            },
        ]
    );


});
© www.soinside.com 2019 - 2024. All rights reserved.