如何获取URL到帖子作者的用户BuddyPress头像内Wordpress后循环

Has*_*len 3 php wordpress gravatar buddypress

问题

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

要求

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

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

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

我试过的

一堆东​​西,但主要是 <?php echo get_avatar_url('user_email'); ?>

它返回由Gravatar托管的默认"神秘人"图像的网址,尽管它们是为此测试用户上传到我的网站的头像.

澄清

我不想要一个Gravatar托管图像.

参考

get_avatar_url()的Wordpress代码参考

目前还没有完整的Wordpress Codex条目

关注

我开始考虑avatar和Gravatar之间的所有WP歧义,get_avatar_url仅用于Gravatar图像,当然只有Gravatar注册用户可以使用.希望有人可以告诉我,我错了.

可能的兴趣

  • 网站使用Buddypress

  • 这个网站Buddypress安装使用自定义头像大小

  • 本网站使用自己的自定义主题

  • 用户已将头像上传到网站

  • 用户没有gravatar帐户(测试没有大多数用户不会有gravatar帐户.我不希望大多数用户有神秘人代替他们的头像)

  • 以下代码可以正常工作以拉取网站托管的头像(但当然输出图像标签和类,而不是我需要的纯网址)

    <?php echo get_avatar( get_the_author_meta( 'ID' ), 180 ); ?>
    
    Run Code Online (Sandbox Code Playgroud)

ran*_*ame 6

似乎没有关于此的文档,所以难怪它一直在挑战.

要检索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
    ) 
);
Run Code Online (Sandbox Code Playgroud)

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

文档

bp_core_fetch_avatar( $args );
Run Code Online (Sandbox Code Playgroud)

返回:字符串格式化的HTML <img>元素,或基于$ html arg的原始头像URL.

描述:

获取BuddyPress对象的头像.默认情况下支持用户,组和博客的头像,但也可以扩展为支持自定义组件.

此功能优先于本地上传的头像.如果找不到本地头像,则会查询Gravatar.

用法

<?php  bp_core_fetch_avatar( $args ); ?>
Run Code Online (Sandbox Code Playgroud)

默认用法:

<?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 ); ?>
Run Code Online (Sandbox Code Playgroud)

参数:

所有论据在技术上都是可选的; bp_core_fetch_avatar()会自动检测某些内容(如果未提供).在讨论特定参数时,下面将更详细地描述这种自动检测.

item_id
(int | bool)您要为其申请头像的项目的数字ID(例如,用户ID).如果没有'item_id',该函数会尝试从'对象'+当前上下文推断ID:如果'object'是'user'而当前页面是用户页面,'item_id'将默认为显示用户身份; if'group'和组页面上的当前组ID; 如果是'博客',请转到当前博客的ID.如果不能以这种方式确定'item_id',则该函数返回false.默认值:false.

$ object
(string)您获得头像的对象类型.BuddyPress原生支持三种选择:'用户','组','博客'; 插件可能会注册更多. 默认值:'用户'.

$ type
(字符串)当新的头像上传到BP时,会保存"拇指"和"完整"版本.此参数指定您是否喜欢"完整"或更小的"拇指"头像.默认值:'拇指'.

$ avatar_dir
(string | bool)(自动检测)应找到请求的头像的子目录的名称.如果没有传递任何值,则从'object'推断'avatar_dir':'user'变为'avatars','group'变为'group-avatars','blog'变为'blog-avatars'.

请记住,此字符串表示BP主要头像目录的子目录(通常基于{@link wp_upload_dir()}); 它是一个像'group-avatars'的字符串,而不是完整的目录路径.通常,如果将头像存储在非默认位置,则只需要覆盖默认值.默认值:false.

$ width
(int | bool)(自动检测)请求的头像宽度.单位是px.此值用于构建<img>元素的"width"属性.如果未传递任何值,则BP会使用此头像类型的全局头像宽度.默认值:false.

$ height
(int | bool)(自动检测)请求的头像高度.单位是px.此值用于构建<img>元素的"height"属性.如果未传递任何值,则BP会使用此头像类型的全局头像高度.默认值:false.

$ class (string)<img>元素的CSS类.请注意,BP在其默认样式中相当广泛地使用"avatar"类,因此如果您计划传递自定义值,请考虑将其附加到"avatar"(例如"avatar foo"),而不是完全替换它.默认值:'avatar'.

$ css_id (string | bool)<img>元素的CSS id .默认值:false.

$ title (string)<img>元素的title属性.默认值:false.

$ alt (string)<img>元素的alt属性.在BP中,这个值通常由包装器函数传递,其中连接字符串所需的数据就在眼前; 有关示例,请参阅{@link bp_get_activity_avatar()}.默认值:''.

$ email
(字符串| 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 (string)要在IMG元素中插入的HTML属性.没有消毒.默认值:''.

$ scheme
(字符串)要使用的URL方案.有关可接受的值,请参见set_url_scheme(). 默认为null.

$ rating (string)显示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' );
Run Code Online (Sandbox Code Playgroud)