web-dev-qa-db-ja.com

ループ内の作者プロフィール写真画像のURLのみを取得する

投稿者プロフィール画像リンクを取得する必要があります。

私はget_avatar();を使うことができることを知っていますが、それは画像全体のマークアップを表示します

<img src="http://.../img.png" class="avatar img-responsive" alt="image">

しかし、作者プロフィール写真のsrcだけが必要です。

どうすればいいの?たぶん、phpjsを使って、合計出力から唯一のsrc値を取り出すことができます。

私の2番目の質問は、その投稿のサムネイルが存在しない場合、どうやってそのimagepost_thumbnailとして追加できるのですか?

1
hkchakladar

次の内側のループを置くことはあなたの必要性を満たすべきです:

<?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().'" />';
}
?>
4
Abdul Awal

get_avatart_uri()関数を使用して、アバター画像のURLを提供するパラメータとしてユーザーの電子メールを渡すだけです。

1
Vinit Patil

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 } ?>

質問2

その投稿のサムネイルが存在しない場合は、その画像をpost_thumbnailとして追加します。


<?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="">';
    }
?>

幸運を祈っています。


リソース: Gravatarsを使う | hast_post_thumbnail

0