题
如果没有插件,有没有办法更改用户的化身?为什么用户>您的个人资料中没有“头像上传”部分?
我不能使用插件。我是盲人还是被迫使用Gravatar? ;/
其他提示
如果您询问如何用自己的一个替换默认的gravatar,则可以将此代码放在functions.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的用户都会获得您网站的徽标。
与Ray Mitchell的答案相比 WordPress法典页面由于传递到默认的Avatar Hook的归一化用户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;
}
我知道,在一个项目站点上,我能够在“用户配置文件编辑器”页面上创建一个字段,用于接受图像路径(如果我没记错的话,可以通过媒体页面上载)可以用于化身。无需插件。
我注意到这取决于激活哪个主题。例如,咒语主题中没有选项,但是BuddyPress默认主题中有一个选项。
您可以做到...您需要将图像添加到媒体中。复制该媒体文件URL并粘贴/链接到您在编辑用户下的自定义用户头像URL。分类!
将您的avatar.jpg文件添加到您的孩子主题images文件夹和以下代码中的孩子主题函数文件:
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;
}