我在注册表上创建了自定义字段,例如“电话”,使用Theme My Login. 我找到了一种方法使它们出现在后端(在用户页面上),但我无法更新这些字段。
我需要做什么才能更新它们?
注册表格。php:
<label for="telephone<?php $template->the_instance(); ?>"><?php _e( \'Telephone\', \'theme-my-login\' ) ?></label>
<input type="text" name="telephone" id="pays<?php $template->the_instance(); ?>" class="input" value="<?php $template->the_posted_value( \'telephone\' ); ?>"/>
功能。php:
<?php
function custom_user_profile_fields($user) {
?>
<table class="form-table">
<tr>
<th>
<label for="telephone"><?php _e(\'Téléphone\'); ?></label>
</th>
<td>
<input type="text" name="telephone" id="telephone" value="<?php echo esc_attr( get_the_author_meta( \'telephone\', $user->ID ) ); ?>" class="regular-text" />
</td>
</tr>
</table>
<?php
}
add_action(\'show_user_profile\', \'custom_user_profile_fields\');
add_action(\'edit_user_profile\', \'custom_user_profile_fields\');
?>
最合适的回答,由SO网友:user3206631 整理而成
我使用update_user_meta 更新字段。您可以在函数中添加此项。您的子主题的php。
function save_extra_user_profile_fields( $user_id ) {
if ( !current_user_can( \'edit_user\', $user_id ) ) {
return false;
}
update_user_meta( $user_id, \'telephone\', $_POST[\'telephone\'] );
}
add_action( \'personal_options_update\', \'save_extra_user_profile_fields\' );
add_action( \'edit_user_profile_update\', \'save_extra_user_profile_fields\' );