web-dev-qa-db-fra.com

Obtenir uniquement l'URL de l'image de profil de l'auteur dans une boucle

J'ai besoin d'obtenir le lien de photo de profil auteur auteur.

Je sais que je peux utiliser get_avatar(); mais il affiche le balisage de l'image entière

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

Mais n’avez besoin que de la src de la photo de profil d’auteur.

Comment puis-je avoir ça? Peut-être pourrions-nous utiliser des variables php ou js pour extraire la seule valeur src de la sortie totale.

Ma deuxième question est la suivante: comment puis-je ajouter cette image en tant que post_thumbnail si aucune vignette n'existe pour cette publication?

1
hkchakladar

Mettre la boucle intérieure suivante devrait répondre à vos besoins:

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

utilisez simplement la fonction get_avatart_uri () et transmettez le courrier électronique de l'utilisateur en tant que paramètre qui vous donnera l'URL de l'image de l'avatar

1
Vinit Patil

En plus d'utiliser get_avatar_url, vous pouvez toujours utiliser get_avatar. Si je ne me trompe pas, c'est ce que vous recherchez.

Question 1

Obtenir le lien post picture author profile


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

Question 2

Ajouter cette image en tant que post_thumbnail s'il n'existe aucune miniature pour ce message


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

En espérant que ça aide, bonne chance!


Ressources: Utilisation de Gravatars | hast_post_thumbnail

0
Jentan Bernardus