Ottieni solo l'URL dell'immagine del profilo dell'autore all'interno di un ciclo

5 set 2015, 23:54:54
Visualizzazioni: 36.1K
Voti: 2

Ho bisogno di ottenere il link dell'immagine del profilo dell'autore del post.

So che posso usare get_avatar(); ma questo visualizza l'intero markup dell'immagine

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

Ma ho bisogno solo del valore src dell'immagine del profilo dell'autore.

Come posso ottenerlo? Forse possiamo usare del php o js per estrarre solo il valore src dall'output totale.

La mia seconda domanda è, come posso aggiungere quell'immagine come post_thumbnail se non esiste un'immagine in evidenza per quel post?

4
Commenti

La risposta è qui: http://wordpress.stackexchange.com/a/188288/24875 Puoi semplicemente usare la funzione get_avatar_url().

Christine Cooper Christine Cooper
6 set 2015 00:24:28

Ah, vedo che è una nuova funzionalità, quindi non l'ho trovata nel codex. Hai qualche commento sulla seconda parte della mia domanda?

hkchakladar hkchakladar
6 set 2015 00:47:29

Nel loop puoi verificare se esiste una miniatura con la funzione has_post_thumbnail(). Se restituisce false, mostra la tua immagine.

Alexey Alexey
6 set 2015 01:35:36

Possibile duplicato di Come posso ottenere l'URL dell'avatar invece di un tag HTML IMG quando uso get_avatar?

Andy Macaulay-Brook Andy Macaulay-Brook
8 ott 2016 13:52:26
Tutte le risposte alla domanda 5
0

Inserendo il seguente codice all'interno del loop dovrebbe soddisfare le tue esigenze:

<?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().'" />';
}
?>
30 mar 2017 00:59:05
2

usa semplicemente la funzione get_avatart_uri() e passa l'email dell'utente come parametro, ti restituirà l'URL dell'immagine dell'avatar

17 nov 2016 05:06:01
Commenti

Non credo che get_avatart_uri() sia un nome di funzione esistente disponibile in WordPress...

Sven Sven
17 nov 2016 05:37:14

https://developer.wordpress.org/reference/functions/get_avatar_url/, sembra un errore di battitura.

prosti prosti
17 nov 2016 08:28:23
2

Oltre a utilizzare get_avatar_url, puoi ancora usare get_avatar. Se non sbaglio, è questo quello che stai cercando.

Domanda 1

Ottenere il link dell'immagine del profilo dell'autore del post


<?php 
    // esegui l'output solo se esiste la funzione gravatar
    if (function_exists('get_avatar')) { ?>

    <?php
    // Converti l'email in un hash md5 e imposta la dimensione dell'immagine a 32px
    $gravatar = 'http://www.gravatar.com/avatar/' . md5(strtolower($user_email)) . '&s=32';

    // Converti l'email in un hash md5 e rimuovi la dimensione dell'immagine per usarla come immagine del post
    $gravatar_bg = 'http://www.gravatar.com/avatar/' . md5(strtolower($user_email)) . '';
    ?>
    <!-- Mostra il gravatar come img src -->
    <img src="<?php echo "$gravatar";?>" alt="">

    <!-- Mostra il gravatar come background url -->
    <div class="avatar" style="background: url(<?php echo $gravatar_bg ?>);" ></div>

<?php } ?>

Domanda 2

Aggiungere quell'immagine come post_thumbnail se non esiste una miniatura per quel post


<?php
    // Controlla se il post ha una miniatura
    // if ( has_post_thumbnail() ) {            // opzione 1
    if ( '' != get_the_post_thumbnail() ) {     // opzione 2

    // se ce l'ha, mostra la miniatura
      the_post_thumbnail();

    } else {
     // altrimenti, mostra l'immagine del gravatar
     echo '<img src="<?php echo "$gravatar";?>" alt="">';
    }
?>

Spero che questo ti sia utile, buona fortuna!


Risorse: Utilizzo dei Gravatars | hast_post_thumbnail

6 set 2015 02:22:29
Commenti

Ciao, so che posso controllare if(get_the_post_thumbnail()) e visualizzare quell'immagine nel template. Ma questo non imposta il post_thumbnail, lo visualizza solo in quel particolare template. Voglio set_post_thumbnail. Come posso farlo?

hkchakladar hkchakladar
6 set 2015 12:36:48

In base al tuo commento, non capisco bene cosa stai cercando di ottenere qui. Puoi essere più specifico? Hai chiesto come aggiungere quell'immagine come post_thumbnail se non esiste una miniatura per quel post, il codice che ho postato fa esattamente questo.

Jentan Bernardus Jentan Bernardus
6 set 2015 20:47:09
2

AGGIORNAMENTO (22 maggio 2021) - Sto utilizzando il plugin Simple Local Avatars per permettere agli utenti di aggiornare le immagini localmente. La soluzione qui sotto funzionerà solo se utilizzi questo plugin.


Nel caso qualcuno stia cercando l'immagine completa dell'autore e non la trovi. Ecco un piccolo trucco.

Metodo Semplice

$avatar_url  = get_avatar_url( $author_id ); //questo restituirà un'immagine 96x96.
$final_url   = str_replace('-96x96.', '.',$author_avatar_url);

Sostituendo -96x96. con un semplice ., basta assicurarsi che il nome dell'immagine non includa questa stringa. In alternativa puoi cercare la stessa stringa al contrario e fare la sostituzione usando substr_replace() così:

Metodo Più Precise

$avatar_url  = get_avatar_url( $author_id ); //questo restituirà un'immagine 96x96.
$replace   = '-96x96.';
$pos = strpos($avatar_url, $replace, -(strlen($replace)+5)); // +5 per la lunghezza dell'estensione
$final_url = substr_replace($avatar_url, '.', $pos, strlen($replace));

Questo è il primo risultato su Google quando si cerca l'immagine completa dell'autore, quindi potrebbe essere utile a qualcuno.

13 mag 2021 12:58:13
Commenti

Non credo che funzionerebbe per i Gravatar predefiniti: la dimensione non è nell'URL in quel modo, è un parametro ?s=. Come hai configurato i tuoi avatar? Inoltre get_avatar_url ha un parametro 'size' documentato per l'array args.

Rup Rup
13 mag 2021 13:48:24

@Rup Scusa!!! Hai ragione, sto usando "Simple Local Avatars"(https://wordpress.org/plugins/simple-local-avatars/) per permettere agli utenti di impostare le immagini del profilo localmente e penso che il plugin mi permetta di ottenere un URL nel formato che sto ottenendo. Mi ero completamente dimenticato di questo plugin. Aggiungerò le informazioni su questo plugin nella risposta sopra.

Abhishek Sachan Abhishek Sachan
22 mag 2021 21:01:18
0

Questo è tutto ciò che faccio per aggiungere l'avatar dell'utente registrato.

<img src="<?php echo get_avatar_url(get_the_author_meta('ID')); ?>" class="YOUR CSS CLASS">
6 ott 2021 06:54:07