我试图在我正在处理的特定页面中显示当前登录用户的信息,并且我已经设法显示了一些用户信息。但我决定使用以下代码向用户配置文件中添加一个自定义字段,如“代理部门”、“代理联系人”:
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 profile information", "blank"); ?></h3>
<table class="form-table">
<tr>
<th><label for="agentdept"><?php _e("Agent Department"); ?></label></th>
<td>
<input type="text" name="agentdept" id="agentdept" value="<?php echo esc_attr( get_the_author_meta( \'agentdept\', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Enter Agent Department"); ?></span>
</td>
</tr>
<tr>
<th><label for="agentmobile"><?php _e("Agent Mobile"); ?></label></th>
<td>
<input type="text" name="agentmobile" id="agentmobile" value="<?php echo esc_attr( get_the_author_meta( \'agentmobile\', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Enter Agent Mobile."); ?></span>
</td>
</tr>
</table>
<?php }
add_action( \'personal_options_update\', \'save_extra_user_profile_fields\' );
add_action( \'edit_user_profile_update\', \'save_extra_user_profile_fields\' );
function save_extra_user_profile_fields( $user_id ) {
if ( !current_user_can( \'edit_user\', $user_id ) ) {
return false;
}
update_user_meta( $user_id, \'agentdept\', $_POST[\'agentdept\'] );
update_user_meta( $user_id, \'agentmobile\', $_POST[\'agentmobile\'] );
}
我的问题是,如何获取这些自定义字段的值并将其显示在前端?我真的很感激你的帮助。谢谢大家
最合适的回答,由SO网友:Louis S 整理而成
将其添加到前端,您应该能够调整它以显示您添加的任何字段。
$user_info = get_userdata(get_current_user_id());
echo \'Username: \' . $user_info->user_login . "<br>";
echo \'User roles: \' . implode(\', \', $user_info->roles) . "<br>";
echo \'User ID: \' . $user_info->ID . "<br>";
echo \'User Agent Department: \' . $user_info->agentdept . "<br>";
echo \'User Agent Mobile: \' . $user_info->agentmobile . "<br>";