WordPress无法在用户的简历和密码之间添加字段,但正如您所说的,您可以通过javascript方式来完成。下面是添加单个字段的代码,以举例说明如何实现相同的效果。
NOTE: 下面的代码只显示字段,但不处理任何信息或保存字段值,因为该部分与本文中描述的相同linked 在问题中。
添加字段,将下面的代码放入函数中。php显示字段。
function wpse39285_add_custom_user_profile_fields( $user ) {
?>
<table id="custom_user_field_table" class="form-table">
<tr id="custom_user_field_row">
<th>
<label for="custom_field"><?php _e(\'Field\', \'your_textdomain\'); ?></label>
</th>
<td>
<input type="text" name="custom_field" id="custom_field" value="<?php echo esc_attr( get_the_author_meta( \'custom_field\', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e(\'Please enter your custom_field value.\', \'your_textdomain\'); ?></span>
</td>
</tr>
</table>
<?php
}
add_action( \'show_user_profile\', \'wpse39285_add_custom_user_profile_fields\' );
add_action( \'edit_user_profile\', \'wpse39285_add_custom_user_profile_fields\' );
上述代码将在密码字段之后放置自定义字段。
移动字段
只有当用户查看自己的个人资料或管理员正在编辑其他人的个人资料时,下面的代码才会在WordPress管理员头中插入javascript。
function wpse39285_field_placement_js() {
$screen = get_current_screen();
if ( $screen->id != "profile" && $screen->id != "user-edit" )
return;
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
field = $(\'#custom_user_field_row\').remove();
field.insertBefore(\'#password\');
});
</script>
<?php
}
add_action( \'admin_head\', \'wpse39285_field_placement_js\' );
上述javascript将使字段移动到密码字段和bio字段之间。如果用户从非javascript浏览器查看页面,则字段将不会移动,并将按默认方式显示。
启用JavaScript浏览器的字段
具有非JavaScript浏览器的字段