bp_get_blog_avatar( array|string $args = '' )
Get a blog’s avatar.
Description
At the moment, blog avatars are simply the user avatars of the blog admin. Filter ‘bp_get_blog_avatar_’ . $blog_id to customize.
See also
- bp_core_fetch_avatar(): For a description of arguments and return values.
Parameters
- $args
-
(Optional) Arguments are listed here with an explanation of their defaults. For more information about the arguments, see bp_core_fetch_avatar().
- 'alt'
(string) Default: 'Profile picture of site author [user name]'. - 'class'
(string) Default: 'avatar'. - 'type'
(string) Default: 'full'. - 'width'
(int|bool) Default: false. - 'height'
(int|bool) Default: false. - 'id'
(bool) Currently unused. - 'no_grav'
(bool) Default: true.
Default value: ''
- 'alt'
Return
(string) User avatar string.
Source
File: bp-blogs/bp-blogs-template.php
function bp_get_blog_avatar( $args = '' ) {
global $blogs_template;
// Bail if avatars are turned off
// @todo Should we maybe still filter this?
if ( ! buddypress()->avatar->show_avatars ) {
return false;
}
$author_displayname = bp_core_get_user_displayname( $blogs_template->blog->admin_user_id );
// Parse the arguments.
$r = bp_parse_args( $args, array(
'type' => 'full',
'width' => false,
'height' => false,
'class' => 'avatar',
'id' => false,
'alt' => sprintf( __( 'Profile photo of site author %s', 'buddyboss' ), esc_attr( $author_displayname ) ),
'no_grav' => true,
) );
// Use site icon if available.
$avatar = '';
if ( bp_is_active( 'blogs', 'site-icon' ) && function_exists( 'has_site_icon' ) ) {
$site_icon = bp_blogs_get_blogmeta( bp_get_blog_id(), "site_icon_url_{$r['type']}" );
// Never attempted to fetch site icon before; do it now!
if ( '' === $site_icon ) {
switch_to_blog( bp_get_blog_id() );
// Fetch the other size first.
if ( 'full' === $r['type'] ) {
$size = bp_core_avatar_thumb_width();
$save_size = 'thumb';
} else {
$size = bp_core_avatar_full_width();
$save_size = 'full';
}
$site_icon = get_site_icon_url( $size );
// Empty site icons get saved as integer 0.
if ( empty( $site_icon ) ) {
$site_icon = 0;
}
// Sync site icon for other size to blogmeta.
bp_blogs_update_blogmeta( bp_get_blog_id(), "site_icon_url_{$save_size}", $site_icon );
// Now, fetch the size we want.
if ( 0 !== $site_icon ) {
$size = 'full' === $r['type'] ? bp_core_avatar_full_width() : bp_core_avatar_thumb_width();
$site_icon = get_site_icon_url( $size );
}
// Sync site icon to blogmeta.
bp_blogs_update_blogmeta( bp_get_blog_id(), "site_icon_url_{$r['type']}", $site_icon );
restore_current_blog();
}
// We have a site icon.
if ( ! is_numeric( $site_icon ) ) {
if ( empty( $r['width'] ) && ! isset( $size ) ) {
$size = 'full' === $r['type'] ? bp_core_avatar_full_width() : bp_core_avatar_thumb_width();
} else {
$size = (int) $r['width'];
}
$avatar = sprintf( '<img src="%1$s" class="%2$s" width="%3$s" height="%3$s" alt="%4$s" />',
esc_url( $site_icon ),
esc_attr( "{$r['class']} avatar-{$size}" ),
esc_attr( $size ),
sprintf( esc_attr__( 'Site icon for %s', 'buddyboss' ), bp_get_blog_name() )
);
}
}
// Fallback to user ID avatar.
if ( '' === $avatar ) {
$avatar = bp_core_fetch_avatar( array(
'item_id' => $blogs_template->blog->admin_user_id,
// 'avatar_dir' => 'blog-avatars',
// 'object' => 'blog',
'type' => $r['type'],
'alt' => $r['alt'],
'css_id' => $r['id'],
'class' => $r['class'],
'width' => $r['width'],
'height' => $r['height']
) );
}
/**
* In future BuddyPress versions you will be able to set the avatar for a blog.
* Right now you can use a filter with the ID of the blog to change it if you wish.
* By default it will return the avatar for the primary blog admin.
*
* This filter is deprecated as of BuddyPress 1.5 and may be removed in a future version.
* Use the 'bp_get_blog_avatar' filter instead.
*/
$avatar = apply_filters( 'bp_get_blog_avatar_' . $blogs_template->blog->blog_id, $avatar );
/**
* Filters a blog's avatar.
*
* @since BuddyPress 1.5.0
*
* @param string $avatar Formatted HTML <img> element, or raw avatar
* URL based on $html arg.
* @param int $blog_id ID of the blog whose avatar is being displayed.
* @param array $r Array of arguments used when fetching avatar.
*/
return apply_filters( 'bp_get_blog_avatar', $avatar, $blogs_template->blog->blog_id, $r );
}
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.