【发布时间】:2018-09-12 11:38:26
【问题描述】:
我正在开发一个通过 Wordpress REST API 获取和更新内容的网站。每当用户单击“为此添加书签”按钮时,我都会尝试更新用户的书签,因此我创建了以下register_rest_field 函数:
function handle_user_bookmarks() {
register_rest_field( 'user', 'bookmarks', array(
'get_callback' => array( $this, 'get_user_bookmarks' ),
'update_callback' => array( $this, 'add_user_bookmarks' ),
'schema' => null
));
}
function get_user_bookmarks( $user, $field_name, $request ) {
return get_user_meta( $user[ 'id' ], $field_name, true );
}
function add_user_bookmarks( $user, $meta_value ) {
$bookmarks = get_user_meta( $user[ 'id' ], 'bookmarks', false );
if( $bookmarks ) {
update_user_meta( $user[ 'id' ], 'bookmarks', $meta_value );
} else {
add_user_meta( $user[ 'id' ], 'bookmarks', $meta_value, true );
}
}
get_user_bookmarks 回调工作正常;相反,add_user_bookmarks 回调仅在我将$user[ 'id' ] 替换为get_user_meta、update_user_meta 和add_user_meta 中的“静态”ID 时才有效。换句话说,如果编码如下:
function add_user_bookmarks( $user, $meta_value ) {
$bookmarks = get_user_meta( 1, 'bookmarks', false );
if( $bookmarks ) {
update_user_meta( 1, 'bookmarks', $meta_value );
} else {
add_user_meta( 1, 'bookmarks', $meta_value, true );
}
}
问题显然出在用户 ID 上,那么如何在 add_user_bookmarkscallback 中检索它?
这是单击按钮时发出的 HTTP 请求,如果有帮助的话:
http://example.com/wp-json/wp/v2/users/1 (1 is the queried user's ID)
【问题讨论】:
-
分享
add_user_bookmarks的请求
标签: wordpress wordpress-rest-api