你能帮我解决我的问题吗?
我想做的是获取 WordPress 中 get_avatar_url() 函数的确切 URL。然后使用该 URL 作为背景图像 url。
这是我的代码的样子。
<?php $avatar_url = get_avatar_url(get_avatar($author->ID, 150), array("size"=>260)); ?>
<div class="col-xs-5 nopadding author-picture" style="background: url('<?php echo $avatar_url; ?>')">
<a class="author-block " href="<?php echo get_author_posts_url($author->ID); ?>">
<figure class="author-picture">
<?php echo get_avatar($author->ID, 150); ?>
</figure>
</a>
</div>
get_avatar_url
的用法是get_avatar_url( mixed $id_or_email, array $args = null )
。为什么要将 get_avatar
传递给这个函数。
您可以像这样直接使用它:
get_avatar_url($author->ID, array("size"=>260 ));
像这样:
<?php $avatar_url = get_avatar_url(get_the_author_meta( 'ID' ), array('size' => 450)); ?>
<div class="col-xs-5 nopadding author-picture" style="background: url('<?php echo esc_url( $avatar_url ); ?>')">
我认为后台URL规则必须包含可识别的图像扩展名(jpg、jpeg、gif、png)。
要实现这一目标,您可以:
首先,获取指定用户ID的头像的整个html...
...然后使用正则表达式从中提取包含图像扩展名的 url...
最后在您的代码中使用它,如下所示。
$imageHtml = get_avatar($author->ID, 150);
$imageUrlWithType = [];
preg_match('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $imageHtml, $imageUrlWithType);
<div class="col-xs-5 nopadding author-picture" style="background: url('<?php echo $imageUrlWithType[0]; ?>')">
<a class="author-block " href="<?php echo get_author_posts_url($author->ID); ?>">
<figure class="author-picture">
<?php echo get_avatar($author->ID, 150); ?>
</figure>
</a>
</div>
首先你应该使用 get_post_field() 函数来获取作者 ID
$authorID = get_post_field('post_author', get_the_ID());
然后你可以使用 get_avatar_url() 函数获取头像 URL,如下所示:
<img src="<?php echo esc_url( get_avatar_url( $authorID , 150 ) ); ?>"/>
get_avatar_url( $current_user->ID );