Замените аватары Buddypress простыми локальными аватарами

Я всегда пытался найти решение, и я думаю, что либо его нет, либо мое отсутствие знаний действительно удерживает меня здесь. Короче, у меня на сайте Wordpress установлено buddypress, и я использую Simple Local Avatars для пользователи могут управлять своими аватарами. Так как я использую это и имею некоторые настройки, вставленные в простой плагин локальных аватаров, я хотел бы посмотреть, смогу ли я заменить все аватары buddypress локальными аватарами.

Короче говоря, мои исследования привели меня к этому: Buddypress использует функцию bb_get_avatar для отображения и управления своим аватаром, однако плагин локальных аватаров использует функцию get_avatar, так что после того, как выдернуть мои волосы, выпить кофе и вернуться, чтобы просто начать оттягивать ничего, я Придумал приведенный ниже фрагмент в моем файле functions.php. Это кажется логичным, но не работает, и опять же это, вероятно, из-за моей новизны, но эй, я пытаюсь..

Вот что у меня есть в functions.php:

//try the avatar thing
function socilize_custom_avatars() {
    global $bb_current_user;
    global $current_user;
    get_currentuserinfo();
    $avatar = bb_get_avatar( $bb_current_user->ID ); 

    unset($avatar); 
    $avatar = get_avatar($current_user->ID);

    return $avatar;
}

Кажется (для меня), что это должно работать, но это не так, кто-нибудь, кто может подключиться и сказать мне, как удалить аватары buddypress и заставить его тянуть местных аватаров?

Спасибо за прочтение:)

3 ответа

Решение

Поскольку вы используете BuddyPress, вам нужно смотреть на bp_core_fetch_avatar(), Это везде, когда установлен БП. И на форумах тоже.

Вы должны использовать его фильтры, как bp_core_fetch_avatar а также bp_core_fetch_avatar_url,

Есть окончательное решение:

1 >> в настройках WordPress установите аватар на "пусто" или "нет" (извините, у меня французская версия WordPress)

2 >> поместите этот код в ваш function.php

// Kill gravatar

function bp_remove_gravatar ($image, $params, $item_id, $avatar_dir, $css_id, $html_width, $html_height, $avatar_folder_url, $avatar_folder_dir) {

    $default = get_stylesheet_directory_uri() .'/images/customGravatar.png';

    if( $image && strpos( $image, "gravatar.com" ) ){ 

        return '<img src="' . $default . '" alt="avatar" class="avatar" ' . $html_width . $html_height . ' />';
    } else {
        return $image;

    }

}
add_filter('bp_core_fetch_avatar', 'bp_remove_gravatar', 1, 9 );

function remove_gravatar ($avatar, $id_or_email, $size, $default, $alt) {

    $default = get_stylesheet_directory_uri() .'/images/customGravatar.png';
    return "<img alt='{$alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
}

add_filter('get_avatar', 'remove_gravatar', 1, 5);

function bp_remove_signup_gravatar ($image) {

    $default = get_stylesheet_directory_uri() .'/images/customGravatar.png';

    if( $image && strpos( $image, "gravatar.com" ) ){ 

        return '<img src="' . $default . '" alt="avatar" class="avatar" width="auto" height="auto" />';
    } else {
        return $image;
    }

}
add_filter('bp_get_signup_avatar', 'bp_remove_signup_gravatar', 1, 1 );

3 >> измените всю строку '/images/customGravatar.png' своим собственным изображением

4 >> Теперь, чтобы пользователи могли загружать свои собственные локальные аватары, добавьте этот плагин: Simple Local Avatars

Этот плагин добавляет возможность пользователю добавлять аватар к нему WORLDRESS // BUDDY PRESS уже имеет свою собственную систему замены аватара;)

Возможное, более простое решение..

add_filter('bp_core_fetch_avatar_no_grav', '__return_true');

добавить в plugins/bp-custom.php

Первоначально ответил и лучше объяснил здесь..

/questions/22896884/kak-poluchit-url-adres-dlya-publikatsii-avtora-avatar-buddypress-vnutri-wordpress-post-loop/22896911#22896911

Другие вопросы по тегам