php – 如何获取URL到帖子作者的用户BuddyPress Avatar里面的WordPress Post Loop

问题

如何获得帖子作者的头像的URL?

要求

我想要网址上托管的图片的网址.

图像将在帖子的循环中调用.

该帖子的作者是我希望显示其头像图像的人.

我试过的

一堆东​​西,但主要是<?PHP echo get_avatar_url('user_email'); ?&GT 它返回由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
    ) 
);

这是源PHP文件中的文档(由我格式化了一下):

文档

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.

笔记:

要在本地禁用Gravatar查询回退,请添加以下过滤器:

add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...