Показать пользовательский аватар по умолчанию вместо gravatar

Вопрос или проблема

Я использую эту пользовательскую функцию, чтобы получить аватар по умолчанию с моего сервера вместо gravatar:

if(!function_exists('custom_avatar')){
    function custom_avatar($avatar_defaults){
        $new_default_icon = 'http://localhost/gv/wp-content/images/mystery-man.png';
        $avatar_defaults[$new_default_icon] = 'Пользовательский аватар';
        return $avatar_defaults;
    }
    add_filter('avatar_defaults','custom_avatar');
}

Но пользовательский аватар не отображается, когда я смотрю исходный код, тогда src изображения выглядит так:

http://0.gravatar.com/avatar/a432e8915b383edd8d25c2a4fd5a6995?s=32&d=http%3A%2F%2Flocalhost%2Fgv%2Fwp-content%2Fimages%2Fmystery-man.png%3Fs%3D32&r=G&forcedefault=1

Почему src моего изображения относится к gravatar здесь? Как я могу исправить эту проблему?

Просто используйте функцию get_avatar, $default – это ваш пользовательский аватар по умолчанию.

<?php echo get_avatar( $id_or_email, $size, $default, $alt, $args ); ?> 

https://codex.wordpress.org/Function_Reference/get_avatar

Просто добавьте это в ваш файл functions.php (URL изображения должен быть полным). Затем перейдите в раздел выбора gravatar и выберите новый аватар.

/*** Изменить стандартный gravatar */
add_filter( 'avatar_defaults', 'new_gravatar' );
function new_gravatar ($avatar_defaults) {
$myavatar="https://example.com/image.webp";
$avatar_defaults[$myavatar] = "Стандартный Gravatar";
return $avatar_defaults;
}

Чтобы отобразить пользовательский аватар по умолчанию вместо Gravatar в Wp, используя фильтр, вы можете использовать фильтр avatar_defaults

// Добавить пользовательский аватар по умолчанию
function custom_default_avatar( $avatar_defaults ) {
    $custom_avatar_url="URL_ВАШЕГО_ПОЛЬЗОВАТЕЛЬСКОГО_АВАТАРА"; // Замените это на URL вашего пользовательского аватара
    $avatar_defaults['custom_avatar'] = 'Пользовательский аватар'; // Добавьте название для вашего пользовательского аватара
    return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'custom_default_avatar' );

// Функция для замены Gravatar на пользовательский аватар по умолчанию
function replace_default_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
    $custom_avatar_url="URL_ВАШЕГО_ПОЛЬЗОВАТЕЛЬСКОГО_АВАТАРА"; // Замените это на URL вашего пользовательского аватара
    $custom_avatar = "<img alt="{$alt}" src="https://wordpress.stackexchange.com/questions/162618/{$custom_avatar_url}" class="avatar avatar-{$size} photo" height="{$size}" width="{$size}" />";
    return $custom_avatar;
}
add_filter( 'get_avatar', 'replace_default_avatar', 10, 5 );

.

Ответ или решение

Настройка Пользовательского Значка Аватара Вместо Gravatar в WordPress

В данном руководстве мы рассмотрим, как настроить пользовательский значок аватара в WordPress вместо стандартного Gravatar. Это может быть полезно для создания уникального внешнего вида вашего сайта и улучшения взаимодействия с пользователями.

Шаг 1: Проверка и Замена Функции

Вы уже пробовали использовать следующую функцию в вашем файле functions.php:

if(!function_exists('custom_avatar')){
    function custom_avatar($avatar_defaults){
        $new_default_icon = 'http://localhost/gv/wp-content/images/mystery-man.png';
        $avatar_defaults[$new_default_icon] = 'Custom Avatar';
        return $avatar_defaults;
    }
    add_filter('avatar_defaults','custom_avatar');
}

Однако, вы столкнулись с проблемой, когда URL аватара по умолчанию ссылается на Gravatar:

http://0.gravatar.com/avatar/a432e8915b383edd8d25c2a4fd5a6995?s=32&d=http%3A%2F%2Flocalhost%2Fgv%2Fwp-content%2Fimages%2Fmystery-man.png%3Fs%3D32&r=G&forcedefault=1

Возможные Причины Проблемы

Наиболее вероятная причина генерации этой ссылки — недоступность или неправильный путь к вашему изображению. WordPress пытается обратиться к Gravatar в качестве резервного варианта, когда не может найти указанный вами путь к изображению.

Шаг 2: Настройка URL Аватара

Сначала убедитесь, что URL, который вы используете для пользовательского аватара, является полным и доступным из внешней сети. Например:

$new_default_icon = 'https://example.com/wp-content/images/mystery-man.png'; // Используйте полный URL вашего изображения

Также убедитесь, что изображение загружено на сервер и доступно по указанному URL.

Шаг 3: Обновление Параметров Аватара

Чтобы получить ваш собственный аватар по умолчанию, вы можете использовать следующий код:

// Добавление пользовательского аватара по умолчанию
function custom_default_avatar( $avatar_defaults ) {
    $custom_avatar_url = "https://example.com/wp-content/images/mystery-man.png"; // Замените URL на адрес вашего изображения
    $avatar_defaults[$custom_avatar_url] = 'Пользовательский Аватар'; // Добавление метки для вашего аватара
    return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'custom_default_avatar' );

Шаг 4: Заменяем Gravatar на Ваш Аватар

Для замены Gravatar на ваш собственный аватар, воспользуйтесь следующим фильтром:

function replace_default_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
    $custom_avatar_url = "https://example.com/wp-content/images/mystery-man.png"; // Замените на URL вашего изображения

    if (isset($default) && $default === 'custom_avatar') {
        return "<img alt='{$alt}' src='{$custom_avatar_url}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
    }
    return $avatar;
}
add_filter( 'get_avatar', 'replace_default_avatar', 10, 5 );

Завершение

С применением этих шагов, ваш WordPress сайт будет использовать пользовательский аватар вместо стандартного Gravatar. Убедитесь, что все пути к изображениям корректны и доступ к ним обеспечен. Это не только улучшит внешний вид вашего сайта, но и сделает его более удобным для пользователей.

Для получения дополнительной информации об использовании функции get_avatar, вы можете ознакомиться с документацией WordPress.

Следуя рекомендациям, вы сможете эффективно настроить ваш сайт, что, несомненно, положительно скажется на его восприятии пользователями.

Оцените материал
Добавить комментарий

Капча загружается...