您缺少输入的“已检查”值
<input type="checkbox" name="language" <?php if (get_the_author_meta( \'language\', $user->ID) == \'Mandarin\' ) { ?>checked="checked"<?php }?> value="Mandarin" /> Mandarin<br />
此外,usermeta正在进行交易,但您正在检查
$_POST[\'gender\']
最后,您应该有一个用于英语的usermeta和另一个用于普通话的usermeta,因为它们不是相互排斥的
[编辑:工作代码][编辑2:多种语言]
<?php
$lingo = array(\'en\' => \'English\', \'md\' => \'普通話\', \'es\' => \'Español\', \'fr\' => \'Français\', \'pt\' => \'Português\');
function my_user_field( $user ) {
$gender = get_the_author_meta( \'dealing\', $user->ID);
$company = esc_attr( get_the_author_meta( \'company\', $user->ID ) );
?>
<h3><?php _e(\'More About You\'); ?></h3>
<table class="form-table">
<tr>
<th>
<label for="Dealing Type"><?php _e(\'Gender\'); ?>
</label></th>
<td><span class="description"><?php _e(\'Gender?\'); ?></span><br>
<label><input type="radio" name="dealing" <?php if ($gender == \'Male\' ) { ?>checked="checked"<?php }?> value="Male">Male<br /></label>
<label><input type="radio" name="dealing" <?php if ($gender == \'Female\' ) { ?>checked="checked"<?php }?> value="Female">Female<br /></label>
</td>
</tr>
<tr>
<th>
<label for="company"><?php _e(\'Company\'); ?>
</label></th>
<td>
<span class="description"><?php _e(\'Insert Your Company name\'); ?></span><br>
<input type="text" name="company" id="company" value="<?php echo $company; ?>" class="regular-text" /><br />
</td>
</tr>
<tr>
<th>
<?php _e(\'Language\'); ?>
</th>
<td><?php
global $lingo;
foreach($lingo as $key => $value) {
$code = \'language_\'.$key;
$lang = get_the_author_meta( $code, $user->ID);
?>
<label><input type="checkbox" name="<?php echo $code; ?>" <?php if ($lang == \'yes\' ) { ?>checked="checked"<?php }?> value="yes" /> <?php echo $value; ?></label><br />
<?php }
?>
</td>
</tr>
</table>
<?php
}
function my_save_custom_user_profile_fields( $user_id ) {
if ( !current_user_can( \'edit_user\', $user_id ) )
return FALSE;
update_usermeta( $user_id, \'dealing\', $_POST[\'dealing\'] );
update_usermeta( $user_id, \'company\', $_POST[\'company\'] );
global $lingo;
foreach($lingo as $key => $value) {
$code = "language_".$key;
update_usermeta( $user_id, $code, $_POST[$code] );
}
}
add_action( \'show_user_profile\', \'my_user_field\' );
add_action( \'edit_user_profile\', \'my_user_field\' );
add_action( \'personal_options_update\', \'my_save_custom_user_profile_fields\' );
add_action( \'edit_user_profile_update\', \'my_save_custom_user_profile_fields\' );