我在網上找到了無數關於如何在wordpress中向用戶配置文件添加額外自定義字段的示例。但他們中沒有人展示瞭如何添加字段來上傳文件。如何將自定義文件字段添加到wordpress中的用戶配置文件?
繼承人什麼,我得到了我的額外領域:
add_action('show_user_profile', 'extra_user_profile_fields');
add_action('edit_user_profile', 'extra_user_profile_fields');
function extra_user_profile_fields($user) {
?>
<h3><?php _e("Extra Information", "blank"); ?></h3>
<table class="form-table">
<tr>
<th><label for="my_document"><?php _e("My Document"); ?></label></th>
<td>
<input type="file" name="my_document" id="my_document" value="<?php echo esc_attr(get_the_author_meta('my_document', $user->ID)); ?>" />
</td>
</tr>
</table>
<?php
}
那麼對於表單提交:
add_action('personal_options_update', 'yoursite_save_extra_user_profile_fields');
add_action('edit_user_profile_update', 'yoursite_save_extra_user_profile_fields');
function yoursite_save_extra_user_profile_fields($user_id) {
$saved = false;
if (!current_user_can('edit_user', $user_id))
return false;
if(!empty($_FILES['my_document']['name'])) {
// Use the WordPress API to upload the file
$upload = wp_upload_bits($_FILES['my_document']['name'], null, file_get_contents($_FILES['my_document']['tmp_name']));
if(isset($upload['error']) && $upload['error'] != 0) {
wp_die('There was an error uploading your file. The error is: ' . $upload['error']);
} else {
add_post_meta($user_id, 'my_document', $upload);
update_post_meta($user_id, 'my_document', $upload);
} // end if/else
} // end if
}
文檔沒有保存,我懷疑的形式在編輯個人資料不是招」 t標籤上傳文件。我也不知道如何在保存後在前端檢索文檔,以便向用戶顯示他已上傳文件。