在循环中只获取作者个人资料图片的url

时间:2015-09-05 作者:hkchakladar

我需要获得作者简介图片链接。

我知道我可以用get_avatar(); 但它显示整个图像标记

<img src="http://.../img.png" class="avatar img-responsive" alt="image">
但只需要src 作者简介图片。

我怎么能得到这个?也许我们可以用一些phpjs 取出唯一src 总输出值。

我的第二个问题是,我怎样才能补充imagepost_thumbnail 如果该帖子没有缩略图?

5 个回复
SO网友:Abdul Awal Uzzal

将以下内容放入内部循环应满足您的需要:

<?php
$get_author_id = get_the_author_meta(\'ID\');
$get_author_gravatar = get_avatar_url($get_author_id, array(\'size\' => 450));

if(has_post_thumbnail()){
    the_post_thumbnail();
} else {
    echo \'<img src="\'.$get_author_gravatar.\'" alt="\'.get_the_title().\'" />\';
}
?>

SO网友:Vinit Patil

只需使用函数get\\u avatart\\u uri()并传入用户的电子邮件作为参数,它将为您提供化身图像url

SO网友:Jentan Bernardus

除了使用get_avatar_url, 您仍然可以使用get_avatar. 如果我没有错的话,这就是你要找的。

问题1获取文章作者简介图片链接

<小时>

<?php 
    // only output if gravatar function exists
    if (function_exists(\'get_avatar\')) { ?>

    <?php
    // Convert email into md5 hash and set image size to 32px
    $gravatar = \'http://www.gravatar.com/avatar/\' . md5(strtolower($user_email)) . \'&s=32\';

    // Convert email into md5 hash and remove image size to use as post image
    $gravatar_bg = \'http://www.gravatar.com/avatar/\' . md5(strtolower($user_email)) . \'\';
    ?>
    <!-- Output the gravatar as img src -->
    <img src="<?php echo "$gravatar";?>" alt="">

    <!-- Output the gravatar as background url -->
    <div class="avatar" style="background: url(<?php echo $gravatar_bg ?>);" ></div>

<?php } ?>
如果该帖子没有缩略图,则将该图像添加为post\\u缩略图

<小时>

<?php
    // Check if post has thumbnail 
    // if ( has_post_thumbnail() ) {            // option 1
    if ( \'\' != get_the_post_thumbnail() ) {     // option 2

    // if has, output the thumbnail
      the_post_thumbnail();

    } else {
     // if not, show the gravatar image
     echo \'<img src="<?php echo "$gravatar";?>" alt="">\';
    }
?>
希望这有帮助,祝你好运!

资源:Using Gravatars | hast_post_thumbnail

SO网友:Abhishek Sachan

UPDATE(22 May, 2021) - 我正在使用插件Simple Local Avatars 允许用户在本地更新图像。只有使用此插件,下面的解决方案才会起作用

以防万一有人在寻找作者的完整图像,却找不到。这里有一个小技巧。

简单方法

$avatar_url  = get_avatar_url( $author_id ); //this will give 96x96 image.
$final_url   = str_replace(\'-96x96.\', \'.\',$author_avatar_url);
更换-96x96. 只有一个., 只需确保图像名称不包含此字符串。或者,您可以从反向查找相同的字符串,并使用substr_replace() 例如:

更精确的方法

$avatar_url  = get_avatar_url( $author_id ); //this will give 96x96 image.
$replace   = \'-96x96.\';
$pos = strpos($avatar_url, $replace, -(strlen($replace)+5)); // +5 for length of ext
$final_url = substr_replace($avatar_url, \'.\', $pos, strlen($replace));
这是谷歌首次在搜索作者的完整图片时得到的结果,这样可能会对其他人有所帮助

SO网友:Ben Andrews

这就是我添加注册用户的头像所做的一切。

<img src="<?php echo get_avatar_url(get_the_author_meta(\'ID\')); ?>" class="YOUR CSS CLASS">

相关推荐

set a user-meta key as avatar

我有一个名为“meta kay”的用户;阿凡达;;此值包含用户上载的图像的URL。如何将此元值设置为用户化身?我使用此代码,但不工作add_filter( \'get_avatar\', \'slug_get_avatar\', 10, 5 ); function slug_get_avatar( $avatar, $id_or_email, $size, $default, $alt ) { //If is email, try and find user ID