如何获取URL以发布作者的用户BuddyPress头像在WordPress帖子循环中



问题

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

我想要的url图像是托管在我的网站。

Image将在post的循环中被调用。

帖子的作者是我希望显示其头像的人。

What I've try

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

它返回一个url到默认的'神秘人'图像托管的Gravatar,尽管他们是一个头像上传到我的网站为这个测试用户。

我不想要一个Gravatar托管的图像。

引用

get_avatar_url()的Wordpress代码参考

目前没有完整的Wordpress Codex条目

我开始考虑所有的WP模糊之间的头像和Gravatar, get_avatar_url是唯一的Gravatar图像,当然只有Gravatar注册用户可用。希望有人能告诉我我错了。

可能感兴趣的

  • 网站使用Buddypress

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

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

  • 用户头像已上传至网站

  • 用户没有重力帐户(测试没有,因为大多数用户不会有重力帐户。我不希望大多数用户用神秘人代替他们的头像)

  • 下面的代码可以很好地拉出网站托管的头像(但当然输出图像标记和类,而不是我需要的纯url)

    <?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',则该函数尝试从'object' +当前上下文推断ID:如果'object'是'user'并且当前页面是用户页面,'item_id'将默认为显示的用户ID;如果是'group',在组页面上,则为当前组ID;如果'blog',则为当前blog的ID。如果无法通过这种方式确定'item_id',则该函数返回false。默认值:false。

<$对象/strong>
(string)获取头像的对象类型。BuddyPress原生支持三个选项:'用户','组','博客';一个插件可以注册更多。默认值:‘用户’。

美元类型
(string)当一个新的头像被上传到BP, '拇指'和'完整'版本被保存。这个参数指定你是喜欢"完整"还是更小的"拇指"头像。默认值:"拇指"。

美元avatar_dir
(string|bool) (auto-detected)应该在其中找到请求的头像的子目录的名称。如果没有传递值,'avatar_dir'从'object'推断:'user'变成'avatars', 'group'变成'group-avatars', 'blog'变成'blog-avatars'。

请记住,这个字符串表示BP主头像目录的子目录(通常基于{@link wp_upload_dir()});它是一个类似"group-avatars"的字符串,而不是完整的目录路径。一般来说,只有在将头像存储在非默认位置时才需要重写默认值。默认值:false。

<美元宽度/strong>
(int|bool)(自动检测)请求的头像宽度。单位是px。此值用于为<img>元素构建"宽度"属性。如果没有传递任何值,BP将使用此角色类型的全局角色宽度。默认值:false。

<美元高度/strong>
(int|bool)(自动检测)请求的角色高度。单位是px。该值用于为<img>元素构建"高度"属性。如果没有传递任何值,BP将使用此角色类型的全局角色高度。默认值:false。

<美元类/strong><img>元素的CSS类。请注意,BP在其默认样式中相当广泛地使用了'avatar'类,所以如果你打算传递一个自定义值,请考虑将其附加到'avatar'(例如'avatar foo'),而不是完全替换它。默认值:《阿凡达》。

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

美元标题(string)<img>元素的title属性。默认值:false。

美元alt(string)<img>元素的alt属性。在BP中,此值通常由包装器函数传递,其中连接字符串所需的数据就在手边;看到{@link bp_get_activity_avatar()}为例。默认值:"。

美元邮件
(string|bool)在Gravatar查询中使用的电子邮件。除非另有配置,否则BP将使用Gravatar作为本地未提供的头像的后备。Gravatar的API需要使用用户电子邮件地址的哈希值;这个论点提供了它。如果没有提供,该函数将推断它:对于用户,通过从数据库中获取用户的电子邮件,对于组/博客,通过连接"{$item_id}-{$object}@{bp_get_root_domain()}"。用户查询增加了开销,因此建议包装器函数在查询用户id时为'email'提供一个值。默认值:false。

美元no_grav(bool)是否关闭默认的Gravatar回退。默认情况下,当BP无法找到本地头像时,它将返回到Gravatar。在某些情况下,这可能是不希望的,在这种情况下,' no_gravity '应该设置为true。要全局禁用Gravatar回退,请参阅' bp_core_fetch_avatar_no_gravity '过滤器。默认值:false。

美元html
(bool)是否返回一个<img>HTML元素,而不是一个原始的URL到一个化身。如果为false,<img>特定的参数(如'css_id')将被忽略。默认值:真的。

美元extra_attr(string)要插入IMG元素的HTML属性。没有消毒。默认值:"。

<美元计划/strong>
(string)要使用的URL方案。可接受的值参见set_url_scheme()。默认空。

美元评级(string)显示引力的等级。接受'G', 'PG', 'R', 'X'。默认值是'avatar_rating'选项的值。

美元force_default(bool)创建Gravatar URL时使用。是否强制默认值图像,不管重力是否存在。默认值:false。

指出:

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

add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );

我不确定这个答案是否包含在凯尔的答案中,所以我没有删除它,以防它对其他人有用

在循环中(例如single.php)

<img class="" src="<?php 
$authorUserID = get_the_author_meta('ID');  // get the user id of the post author
echo bp_core_fetch_avatar ( 
array(  'item_id'   => $authorUserID,       // output user id of post author
'type'      => 'full',
'html'      => FALSE               // FALSE = return url, TRUE (default) = return url wrapped with html and css classes
) 
); 
?>">

或从主题文件夹

中的functions.php文件中调用调用(从你的循环中说single.php)

<?php custom_get_author_avatar_url(); ?>

函数(放在functions.php中)

function custom_get_author_avatar_url() {
$authorUserID = get_the_author_meta('ID');  // get the user id of the post author
echo bp_core_fetch_avatar ( 
array(  'item_id'   => $authorUserID,       // output user id of post author
'type'      => 'full',
'html'      => FALSE            // FALSE = return url, TRUE (default) = return url wrapped with html and css classes
) 
); 
}

最新更新