How to change user`s avatar?

时间:2011-01-24 作者:Wordpressor

有没有办法在没有插件的情况下改变用户的头像?为什么在用户>你的个人资料中没有“头像上传”部分?

我不能使用插件。我是失明还是被迫使用Gravatar/

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

化身是由用户控制的,而不是由你控制的。所以,是的,在某种程度上,你被迫使用Gravatar服务。但请记住,它允许用户在任何地方使用相同的头像,并且您可以始终根据内容分级(G、PG、PG-13、R)限制头像的显示。

Gravatar是一个托管服务,这就是为什么个人资料中没有“上传头像”部分的原因。

你说你“不能使用插件”,但实际上这是你添加功能的唯一方法。如果要使用Gravatar以外的其他工具,则需要加载一个插件来支持它。有几个插件支持本地化身:

SO网友:Ray Mitchell

如果您询问如何用自己的gravatar替换默认gravatar,可以将此代码放入函数中。php(如果您的主题支持,最好是custom-functions.php)。

add_filter( \'avatar_defaults\', \'customgravatar\' );

function customgravatar ($avatar_defaults) {
$myavatar = get_home_url(\'Template_directory\') . \'/images/mycustomgravatar.jpg\';
$avatar_defaults[$myavatar] = "My Custom Logo";
return $avatar_defaults;
}
创建图像文件并将其上载到站点的图像目录。“我的自定义徽标”是仪表板讨论部分中选项的标签。这样,任何没有gravatar的用户都可以获得您站点的徽标。

SO网友:jilt

与Ray Mitchell的答案相比,avatar\\u默认挂钩需要更多的代码才能工作,我在wordpress codex pages由于将规范化的用户id传递给默认的头像挂钩,它工作得很好(这可以用于简单的用户id或电子邮件,也可以用于对象用户本身)

    // Apply filter
add_filter( \'get_avatar\' , \'my_custom_avatar\' , 1 , 5 );

function my_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
    $user = false;

    if ( is_numeric( $id_or_email ) ) {

        $id = (int) $id_or_email;
        $user = get_user_by( \'id\' , $id );

    } elseif ( is_object( $id_or_email ) ) {

        if ( ! empty( $id_or_email->user_id ) ) {
            $id = (int) $id_or_email->user_id;
            $user = get_user_by( \'id\' , $id );
        }

    } else {
        $user = get_user_by( \'email\', $id_or_email );   
    }

    if ( $user && is_object( $user ) ) {

        if ( $user->data->ID == \'1\' ) {
            $avatar = \'YOUR_NEW_IMAGE_URL\';
            $avatar = "<img alt=\'{$alt}\' src=\'{$avatar}\' class=\'avatar avatar-{$size} photo\' height=\'{$size}\' width=\'{$size}\' />";
        }

    }

    return $avatar;
}

SO网友:tw2113

我知道,在一个项目站点上,我能够在用户配置文件编辑器页面上创建一个字段,用于接受可用于化身的图像路径(如果我没记错的话,可以通过媒体页面上传)。不需要插件。

SO网友:mirola

我注意到这取决于激活了哪个主题。例如,Mantra主题中没有选项,但buddypress默认主题中有一个选项。

SO网友:sherise

你可以做到的。。。您需要将图像添加到媒体中。复制该媒体文件URL并将其粘贴/链接到“编辑用户”下的自定义用户头像URL。已排序!

SO网友:Dev

添加你的头像。jpg文件到您的子主题图像文件夹,以下代码到您的子主题函数文件:

add_filter( \'get_avatar\' , \'add_custom_avatar\' , 1 , 5 );

function add_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
    $user = false;

    if ( is_numeric( $id_or_email ) ) {

        $id = (int) $id_or_email;
        $user = get_user_by( \'id\' , $id );

    } elseif ( is_object( $id_or_email ) ) {

        if ( ! empty( $id_or_email->user_id ) ) {
            $id = (int) $id_or_email->user_id;
            $user = get_user_by( \'id\' , $id );
        }

    } else {
        $user = get_user_by( \'email\', $id_or_email );   
    }

    if ( $user && is_object( $user ) ) {

        if ( $user->data->ID == \'1\' ) {
            $avatar = sprintf( \'%s/images/avatar.jpg\', get_stylesheet_directory_uri() );
            $avatar = "<img alt=\'{$alt}\' src=\'{$avatar}\' class=\'avatar avatar-{$size} photo\' height=\'{$size}\' width=\'{$size}\' />";
        }

    }

    return $avatar;
}

结束

相关推荐

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

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