问题
如何获得帖子作者头像的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 ); ?>
答案 0 :(得分:6)
似乎没有关于此的文档,所以难怪它一直在挑战。
要检索BuddyPress头像网址,请使用如下功能:
// 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的原始头像网址。
获取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)。如果没有&#39; item_id&#39;如果存在,该函数会尝试从&#39;对象中推断出一个ID。 +当前上下文:if&#39; object&#39;是用户&#39;并且当前页面是用户页面,&#39; item_id&#39;将默认为显示的用户ID;如果&#39; group&#39;在组页面上,到当前组ID; if&#39;博客&#39;,到当前博客的ID。如果没有&#39; item_id&#39;可以通过这种方式确定,该函数返回false。 默认值:false。
<强> $对象强>
(字符串)您获得头像的对象类型。 BuddyPress本身支持三种选择:&#39;用户&#39;,&#39; group&#39;,&#39; blog&#39 ;;插件可能会注册更多。 默认:&#39;用户&#39;
<强> $型强>
(字符串)当新的头像上传到BP时,&#39;拇指&#39;和#39;完整&#39;版本已保存。此参数指定您是否喜欢完整的&#39;或更小的拇指&#39;头像。 默认:&#39;拇指&#39;
<强> $ avatar_dir 强>
(string | bool)(自动检测)应找到请求的头像的子目录的名称。如果没有传递任何值,&#39; avatar_dir&#39;是从&#39;对象&#39;用户&#39;推断出来的。变成了头像&#39;,&#39; group&#39;成为团队头像&#39;,#39;博客&#39;成为博客头像&#39;。
请记住,此字符串表示BP主要头像目录的子目录(通常基于{@link wp_upload_dir()});它是一个类似于&#39; group-avatars&#39;而不是完整的目录路径。通常,如果将头像存储在非默认位置,则仅需要覆盖默认值。 默认值:false。
<强> $宽度强>
(int | bool)(自动检测)请求的头像宽度。单位是px。该值用于构建宽度&#39; <img>
元素的属性。如果未传递任何值,则BP会使用此头像类型的全局头像宽度。 默认值:false。
<强> $高度强>
(int | bool)(自动检测)请求的头像高度。单位是px。该值用于构建高度&#39; <img>
元素的属性。如果未传递任何值,则BP会使用此头像类型的全局头像高度。 默认值:false。
<强> $类强>
(字符串)<img>
元素的CSS类。请注意,BP使用了“头像”#39;在默认样式中相当广泛地使用类,因此如果您打算传递自定义值,请考虑将其附加到“头像”中。 (例如&#39; avatar foo&#39;)而不是完全替换它。 默认:&#39; avatar&#39;。
<强> $ css_id 强>
(string | bool)<img>
元素的CSS id。 默认值:false。
<强> $标题强>
(字符串)<img>
元素的title属性。 默认值:false。
<强> $ ALT 强>
(字符串)<img>
元素的alt属性。在BP中,这个值通常由包装器函数传递,其中连接字符串所需的数据就在眼前;看到
{@link bp_get_activity_avatar()}是一个例子。 默认:&#39;&#39;。
$电子邮件
(字符串| bool)在Gravatar查询中使用的电子邮件。除非另行配置,否则BP使用Gravatar作为本地未提供的头像的后备。 Gravatar的API需要使用用户电子邮件地址的哈希值;这个论点提供了它。如果没有提供,该功能将推断它:对于用户,通过从数据库获取用户的电子邮件,对于组/博客,通过连接&#34; {$ item_id} - {$ object} @ {bp_get_root_domain( )}&#34 ;.用户查询会增加开销,因此建议包装函数为“电子邮件”提供一个值。查询用户ID时。 默认值:false。
<强> $ no_grav 强> (bool)是否禁用默认的Gravatar后备。默认情况下,当BP无法找到本地头像时,它将回退到Gravatar。在某些情况下,这可能是不受欢迎的,在这种情况下,“no_grav&#39;应该设置为true。要全局停用Gravatar后备广告,请参阅&#39; bp_core_fetch_avatar_no_grav&#39;过滤。 默认值:false。
<强> $ HTML 强>
(bool)是否将<img>
HTML元素与原始URL一起返回到头像。如果为false,则会忽略<img>
个特定参数(例如&#39; css_id&#39;)。 默认值:true。
<强> $ extra_attr 强> (字符串)要在IMG元素中插入的HTML属性。没有消毒。 默认:&#39;&#39;。
<强> $方案强>
(字符串)要使用的URL方案。有关可接受的值,请参见set_url_scheme()。 默认为null。
<强> $等级强> (字符串)显示Gravatars的评分。接受&#39; G&#39;&#39; PG&#39;,&#39; R&#39;&#39; X&#39;。 默认值是&#39; avatar_rating&#39;选项。
<强> $ force_default 强> (bool)在创建Gravatar URL时使用。是否强制默认 无论Gravatar是否存在,都可以显示图像。 默认值:false。
要在本地停用Gravatar查询回退,请添加以下过滤器:
add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );
答案 1 :(得分:0)
我不确定这个答案是否已纳入Cale的答案中,所以如果它对其他人有用,我会取消删除它。
循环中的(比如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
)
);
}