的最后一个参数update_user_meta()
, 上一个值是可选参数。如果设置了,它会检查数据库中的值是否确实是您输入的值update_user_meta()
. 如果通过从数据库中获取值来设置该参数,则它是完全冗余的。因此,首先,忽略这一点。
也就是说,这就是解决覆盖问题的方法:
if( $_FILES[\'picture\'][\'error\'] === UPLOAD_ERR_OK ) {
$upload_overrides = array( \'test_form\' => false ); // if you don’t pass \'test_form\' => FALSE the upload will be rejected
$r = wp_handle_upload( $_FILES[\'picture\'], $upload_overrides );
update_user_meta( $user_id, \'picture\', $r );
}
术语有点混乱,因为
UPLOAD_ERR_OK
是一条状态消息,不是错误,但这是检查上载是否成功的方法。如果您将此作为保存元值的条件,那么就可以继续了。
有关$_FILES
superglobal的错误或状态,请参阅Error Messages Explained from the PHP manual.
EDIT: How to get the URL of the uploaded image
此编辑符合此答案评论中的扩展问题。
$pic_data = get_user_meta( $curauth->ID, \'picture\', true );
$pic_url = $pic_data[\'url\'];
将URL保存到一个变量中,然后可以在任何地方回显。假设
$curauth
是当前用户对象。您可以使用全局WordPress变量
$current_user
相反,如果您已经有了对象,那么不妨这样做。