I'm new to plugin development. For a plugin, I want to add custom user fields and add them into the user meta database and then use the fields later on in front end.
But I'm a bit stuck with getting it right. Could someone explain how to do this?
答案 0 :(得分:0)
我试图向您展示一个例子。假设我想为每个用户创建一个新的 Facebook URL 字段。以下是代码
/**
* Creating custom field for each user
*/
function prefix_add_area_field( $user ) {
?>
<h3>User Facebook URL</h3>
<table class="form-table">
<tr>
<th><label for="area_id">Facebook URL</label></th>
<td><input type="text" name="facebook_url" value="<?php echo esc_attr(get_user_meta( $user->ID, 'facebook_url', true )); ?>" class="regular-text" /></td>
</tr>
</table>
<?php
}
add_action( 'show_user_profile', 'prefix_add_area_field' );
add_action( 'edit_user_profile', 'prefix_add_area_field' );
/**
* Saving the user field from admin panel.
*/
function prefix_save_user_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return false;
//save text field
update_usermeta( $user_id, 'facebook_url', $_POST['facebook_url'] );
}
add_action( 'personal_options_update', 'prefix_save_user_fields' );
add_action( 'edit_user_profile_update', 'prefix_save_user_fields' );
如果您想在前端显示自定义字段值即Facebook网址,则可以在主题文件中使用 get_usermeta($ user_id,'facebook_url',true)。
由于