如何向用户数据添加自定义选项?

时间:2011-07-13 作者:Jem

我想向我的用户添加头像。我在一个我工作的网站上有一个有限的小组。上传并不是一个真正的问题,我们可以把图片放在服务器上,然后使用URL设置我们的头像(实际上只有大约5个人可以发布)。也就是说,我该如何向用户页面添加一个字段,他们可以用图像URL填写该字段,然后可以稍后提取。我知道您可以通过the_author_meta(); 函数,但如何添加一个自定义用户字段,以便将其填写并放入与该用户关联的数据库中?

或者最好使用已经存在的东西,比如aim 字段,因为我们都不会填写该字段。

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

要将字段添加到配置文件/用户编辑页面,需要使用edit_user_profile 挂钩和show_user_profile 钩住so:

add_action( \'show_user_profile\', \'my_extra_user_fields\' );
add_action( \'edit_user_profile\', \'my_extra_user_fields\' );
function my_extra_user_fields( $user ) 
{ ?>
    <h3>User avatar</h3>

    <table class="form-table">
        <tr>
            <th><label for="user_avatar">User avatar</label></th>
            <td>
                <input id="user_avatar" name="user_avatar" type="text" value="
                    <?php $user_avatar = get_the_author_meta( \'user_avatar\', $user->ID ); 
                        echo $user_avatar ? $user_avatar : \'\';?>" />
                <span class="description"><?php _e("Please enter Avatar URL."); ?></span>
            </td>
        </tr>
    </table>
<?php }
然后要保存该字段,需要使用personal_options_update 挂钩和edit_user_profile_update 钩住so:

add_action( \'personal_options_update\', \'save_my_extra_user_fields\' );
add_action( \'edit_user_profile_update\', \'save_my_extra_user_fields\' );

function save_my_extra_user_fields( $user_id ) 
{
    if ( !current_user_can( \'edit_user\', $user_id ) ) { return false; }else{

        if(isset($_POST[\'user_avatar\']) && $_POST[\'user_avatar\'] != ""){
            update_usermeta( $user_id, \'user_avatar\', $_POST[\'user_avatar\'] );
        }
    }
}
正如您所知,您可以使用the_author_meta()get_user_meta()

结束

相关推荐

在users.php中使用Manage_User_Columns显示cimy用户字段

我正在尝试向我的主题函数添加代码。php在仪表板用户中显示使用Cimy用户额外字段插件创建的字段。php。我知道我需要使用manage\\u users\\u列,但除此之外,我陷入了困境。有谁对这个插件足够熟悉,可以帮助我获得要显示的正确字段?