问题
如何获得帖子作者的头像的URL?
要求
我想要网址上托管的图片的网址.
图像将在帖子的循环中调用.
该帖子的作者是我希望显示其头像图像的人.
我试过的
一堆东西,但主要是<?PHP echo get_avatar_url('user_email'); ?> 它返回由Gravatar托管的默认“神秘人”图像的网址,尽管它们是为此测试用户上传到我的网站的头像. 澄清 我不想要一个Gravatar托管图像. 参考 WordPress code reference for get_avatar_url()
目前还没有完整的wordpress Codex条目
关注
我开始考虑avatar和Gravatar之间的所有WP歧义,get_avatar_url仅适用于Gravatar图像,当然只有Gravatar注册用户可以使用.希望有人可以告诉我,我错了.
可能的兴趣
>网站使用Buddypress
>此网站Buddypress安装使用自定义头像大小
>本网站使用自己的自定义主题
>用户已将头像上传到网站
>用户没有gravatar帐户(测试没有大多数用户不会有gravatar帐户.我不希望大多数用户有神秘人代替他们的头像)
>以下代码可以很好地拉取网站托管的头像(但当然输出图像标签和类,而不是我需要的纯网址)
<?PHP echo get_avatar( get_the_author_Meta( 'ID' ), 180 ); ?>
解决方法:
似乎没有关于此的文档,所以难怪它一直在挑战.
要检索BuddyPress头像URL,请使用如下函数:
// Assuming $user_id is the id for the desired user
echo bp_core_fetch_avatar (
array( 'item_id' => $user_id, // id of user for desired avatar
'type' => 'full',
'html' => FALSE // FALSE = return url, TRUE (default) = return img html
)
);
文档
bp_core_fetch_avatar( $args );
返回:字符串格式化HTML< img>元素,或基于$html arg的原始头像URL.
描述:
获取BuddyPress对象的头像.
默认情况下支持用户,群组和博客的头像,但也可以
扩展到支持自定义组件.
此功能优先于本地上传的头像.当地的
找不到头像,Gravatar被查询.
<?PHP bp_core_fetch_avatar( $args ); ?>
<?PHP $args = array(
'item_id' => false,
'object' => 'user',
'type' => 'thumb',
'avatar_dir' => false,
'width' => false,
'height' => false,
'class' => 'avatar',
'css_id' => false,
'title' => false,
'alt' => '',
'email' => false,
'no_grav' => false,
'html' => true,
'extra_attr' => '',
'scheme' => null,
'rating' => {setting for 'avatar rating' option},
'force_default' => false
);
bp_core_fetch_avatar( $args ); ?>
参数:
所有论据在技术上都是可选的; bp_core_fetch_avatar()会自动检测某些内容(如果未提供).在讨论特定参数时,下面将更详细地描述这种自动检测.
ITEM_ID
(int | bool)您要为其申请头像的项目的数字ID(例如,用户ID).如果不存在’item_id’,则该函数尝试从’对象’推断当前上下文的ID:如果’object’是’user’并且当前页面是用户页面,’item_id’将默认为显示的用户ID; if’group’和组页面上的当前组ID;如果是“博客”,则转到当前博客的ID.如果不能以这种方式确定’item_id’,则该函数返回false.默认值:false.
$对象
(字符串)您获得头像的对象类型. BuddyPress本身支持三种选择:’用户’,’组’,’博客’;插件可能会注册更多.默认值:’用户’.
$类型
(字符串)当新的头像上传到BP时,会保存“拇指”和“完整”版本.此参数指定您是否喜欢“完整”或更小的“拇指”头像.默认值:’拇指’.
$avatar_dir
(string | bool)(自动检测)应找到请求的头像的子目录的名称.如果没有传递任何值,则从’object’推断’avatar_dir’:’user’变为’avatars’,’group’变为’group-avatars’,’blog’变为’blog-avatars’.
请记住,此字符串表示BP主要头像目录的子目录(通常基于{@link wp_upload_dir()});它是一个像’group-avatars’的字符串,而不是完整的目录路径.通常,如果将头像存储在非默认位置,则只需要覆盖默认值.默认值:false.
$宽度
(int | bool)(自动检测)请求的头像宽度.单位是px.此值用于为< img>构建’width’属性.元件.如果未传递任何值,则BP会使用此头像类型的全局头像宽度.默认值:false.
$高度
(int | bool)(自动检测)请求的头像高度.单位是px.此值用于为< img>构建’height’属性元件.如果未传递任何值,则BP会使用此头像类型的全局头像高度.默认值:false.
$类
(字符串)< img>的CSS类元件.请注意,BP在其默认样式中相当广泛地使用“avatar”类,因此如果您计划传递自定义值,请考虑将其附加到“avatar”(例如“avatar foo”),而不是完全替换它.默认值:’avatar’.
$css_id
(string | bool)< img>的CSS ID元件.默认值:false.
$标题
(字符串)< img>的标题属性元件.默认值:false.
$ALT
(字符串)< img>的alt属性元件.在BP中,这个值通常由包装器函数传递,其中连接字符串所需的数据就在眼前;看到
{@link bp_get_activity_avatar()}是一个例子.默认值:”.
$电子邮件
(字符串| bool)在Gravatar查询中使用的电子邮件.除非另行配置,否则BP使用Gravatar作为本地未提供的头像的后备. Gravatar的API需要使用用户电子邮件地址的哈希值;这个论点提供了它.如果没有提供,该函数将推断它:对于用户来说,通过连接“{$item_id} – {$object} @ {bp_get_root_domain()}”,通过从数据库获取用户的电子邮件,对于组/博客.用户查询会增加开销,因此建议在查询用户ID时,包装函数为“email”提供值.默认值:false.
$no_grav
(bool)是否禁用默认的Gravatar后备.默认情况下,当BP无法找到本地头像时,它将回退到Gravatar.在某些情况下,这可能是不合需要的,在这种情况下,’no_grav’应该设置为true.要全局禁用“Gravatar”回退,请参阅“bp_core_fetch_avatar_no_grav”过滤器.默认值:false.
$HTML
(bool)是否返回< img> HTML元素,与头像的原始URL.如果为false,将忽略< img>特定参数(如’css_id’).默认值:true.
$extra_attr
(字符串)要在IMG元素中插入的HTML属性.没有消毒.默认值:”.
$方案
(字符串)要使用的URL方案.有关可接受的值,请参见set_url_scheme().默认为null.
$评级
(字符串)显示Gravatars的评分.接受’G’,’PG’,’R’,’X’.默认值是’avatar_rating’选项的值.
$force_default
(bool)在创建Gravatar URL时使用.是否强制默认
无论Gravatar是否存在,都可以显示图像.默认值:false.
笔记:
add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );