仅更改管理员头像(没有Gravata或插件)?

时间:2019-11-21 作者:jockebq

我不喜欢使用Gravatar的想法,我也不希望我的用户能够更改他们的头像。但是,我只想将头像替换为管理员角色。不使用插件和Gravatar就可以做到这一点吗?

我找到了替换默认gravatar的代码片段,但对于所有用户来说,这都是站点范围内的。我只想替换管理员头像。

非常感谢。

1 个回复
SO网友:jockebq

我可能已经找到了解决办法。这似乎有用,但也许我错过了什么?

function custom_user_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 );
    } else if ( 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/support-male.png\', get_stylesheet_directory_uri() );
            $avatar = "<img alt=\'{$alt}\' src=\'{$avatar}\' class=\'avatar avatar-{$size} photo\' height=\'{$size}\' width=\'{$size}\' />";
        }
        else if ( $user->data->ID == \'200\' ) {
            $avatar = sprintf( \'%s/images/avatar/support-female.png\', get_stylesheet_directory_uri() );
            $avatar = "<img alt=\'{$alt}\' src=\'{$avatar}\' class=\'avatar avatar-{$size} photo\' height=\'{$size}\' width=\'{$size}\' />";
        }
        else {
            $avatar = sprintf( \'%s/images/avatar/default.png\', get_stylesheet_directory_uri() );
            $avatar = "<img alt=\'{$alt}\' src=\'{$avatar}\' class=\'avatar avatar-{$size} photo\' height=\'{$size}\' width=\'{$size}\' />";
        }
    }
    return $avatar;
}
add_filter( \'get_avatar\' , \'custom_user_avatar\' , 1 , 5 );

相关推荐

Gravatar image url is wrong?

我有一段代码可以拉用户的坟墓:if( $current_user->ID == 0 ) { // Not logged in. echo \'<p><img src=\"\'.get_stylesheet_directory_uri().\'/img/wpb-default-gravatar.png\" alt=\"תמונת פרופיל\"></p>\'; echo \'<p>רוצה למכור?&