如何获取当前用户的自定义字段的值?

时间:2019-07-30 作者:kitmin

我试图在我正在处理的特定页面中显示当前登录用户的信息,并且我已经设法显示了一些用户信息。但我决定使用以下代码向用户配置文件中添加一个自定义字段,如“代理部门”、“代理联系人”:

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\'] );
}
我的问题是,如何获取这些自定义字段的值并将其显示在前端?我真的很感激你的帮助。谢谢大家

1 个回复
最合适的回答,由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>";

相关推荐

如何在PHP中从块属性序列化Gutenberg块?

我正在编写一个迁移脚本,它必须读取帖子的post\\u内容,然后动态更改一些自定义Gutenberg块的一些属性。我能够读取post\\u内容,然后使用parse_blocks 作用我还能够通过操纵块对象动态更改自定义块的属性。但我无法将这些块对象转换为Gutenberg用来序列化它们以便更新post\\u内容的特殊HTML注释。我发现WordPress core的PHP部分只有parse_blocks 函数将特殊HTML注释解析为块对象,并render_block 函数来渲染块,但没有serialize