Obține doar URL-ul imaginii de profil a autorului într-o buclă

5 sept. 2015, 23:54:54
Vizualizări: 36.1K
Voturi: 2

Am nevoie să obțin link-ul imaginii de profil a autorului articolului.

Știu că pot folosi get_avatar(); dar acesta afișează întregul markup al imaginii

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

Dar am nevoie doar de valoarea src a imaginii de profil a autorului.

Cum pot obține asta? Poate putem folosi php sau js pentru a extrage doar valoarea src din întregul output.

A doua mea întrebare este, cum pot adăuga acea imagine ca post_thumbnail dacă nu există o miniatură pentru acel articol?

4
Comentarii

Răspunsul este aici: http://wordpress.stackexchange.com/a/188288/24875 Pur și simplu folosești funcția get_avatar_url().

Christine Cooper Christine Cooper
6 sept. 2015 00:24:28

Ah, înțeleg că este o funcționalitate nouă, deci nu am găsit-o în codex. Ai vreun comentariu legat de a doua parte a întrebării mele?

hkchakladar hkchakladar
6 sept. 2015 00:47:29

în The loop poți verifica dacă există thumbnail folosind funcția has_post_thumbnail(). În cazul în care returnează false, afișează imaginea ta.

Alexey Alexey
6 sept. 2015 01:35:36

Posibil duplicat al Cum obțin URL-ul avatarului în loc de un tag HTML IMG când folosesc get_avatar?

Andy Macaulay-Brook Andy Macaulay-Brook
8 oct. 2016 13:52:26
Toate răspunsurile la întrebare 5
0

Punând următorul cod în interiorul loop-ului ar trebui să îți satisfacă nevoile:

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

doar folosește funcția get_avatart_uri() și trimite ca parametru adresa de email a utilizatorului, aceasta va returna URL-ul imaginii de avatar

17 nov. 2016 05:06:01
Comentarii

Nu cred că get_avatart_uri() este o funcție existentă în WordPress...

Sven Sven
17 nov. 2016 05:37:14

https://developer.wordpress.org/reference/functions/get_avatar_url/, se pare că e o greșeală de scriere.

prosti prosti
17 nov. 2016 08:28:23
2

Pe lângă utilizarea funcției get_avatar_url, poți utiliza în continuare get_avatar. Dacă nu mă înșel, aceasta este ceea ce cauți.

Întrebarea 1

Obține legătura către imaginea de profil a autorului postării


<?php 
    // afișează doar dacă funcția gravatar există
    if (function_exists('get_avatar')) { ?>

    <?php
    // Converteste emailul în hash md5 și setează dimensiunea imaginii la 32px
    $gravatar = 'http://www.gravatar.com/avatar/' . md5(strtolower($user_email)) . '&s=32';

    // Converteste emailul în hash md5 și elimină dimensiunea imaginii pentru a folosi ca imagine de fundal
    $gravatar_bg = 'http://www.gravatar.com/avatar/' . md5(strtolower($user_email)) . '';
    ?>
    <!-- Afișează gravatarul ca img src -->
    <img src="<?php echo "$gravatar";?>" alt="Imagine profil Gravatar" title="Imagine profil Gravatar">

    <!-- Afișează gravatarul ca fundal URL -->
    <div class="avatar" style="background: url(<?php echo $gravatar_bg ?>);" ></div>

<?php } ?>

Întrebarea 2

Adaugă acea imagine ca post_thumbnail dacă nu există thumbnail pentru postare


<?php
    // Verifică dacă postarea are thumbnail 
    // if ( has_post_thumbnail() ) {            // opțiunea 1
    if ( '' != get_the_post_thumbnail() ) {     // opțiunea 2

    // dacă are, afișează thumbnail-ul
      the_post_thumbnail();

    } else {
     // dacă nu are, arată imaginea gravatar
     echo '<img src="<?php echo "$gravatar";?>" alt="Imagine profil Gravatar implicită" title="Imagine profil Gravatar implicită">';
    }
?>

Sper că acest lucru te ajută, mult succes!


Resurse: Utilizarea Gravatars | hast_post_thumbnail

6 sept. 2015 02:22:29
Comentarii

Bună, știu că pot verifica if(get_the_post_thumbnail()) și să afișez acea imagine în template. Dar asta nu setează post_thumbnail, doar o afișează în acel template specific. Vreau să folosesc set_post_thumbnail. Cum pot face asta?

hkchakladar hkchakladar
6 sept. 2015 12:36:48

Pe baza comentariului tău, nu înțeleg prea bine ce încerci să realizezi. Poți fi mai specific? Ai întrebat cum să adaugi acea imagine ca post_thumbnail dacă nu există thumbnail pentru acel post, codul pe care l-am postat face exact asta.

Jentan Bernardus Jentan Bernardus
6 sept. 2015 20:47:09
2

ACTUALIZARE(22 Mai, 2021) - Folosesc un plugin Simple Local Avatars pentru a permite utilizatorilor să actualizeze imaginile local. Soluția de mai jos va funcționa doar dacă utilizați acest plugin.


Doar în cazul în care cineva caută imaginea completă a autorului și nu o găsește. Iată un mic hack.

Metodă Simplă

$avatar_url  = get_avatar_url( $author_id ); //va returna o imagine 96x96.
$final_url   = str_replace('-96x96.', '.',$author_avatar_url);

Înlocuind -96x96. cu doar un ., Trebuie doar să vă asigurați că numele imaginii nu include acest șir. Alternativ, puteți căuta același șir din spate și faceți înlocuirea folosind substr_replace() astfel:

Metodă Mai Preciză

$avatar_url  = get_avatar_url( $author_id ); //va returna o imagine 96x96.
$replace   = '-96x96.';
$pos = strpos($avatar_url, $replace, -(strlen($replace)+5)); // +5 pentru lungimea extensiei
$final_url = substr_replace($avatar_url, '.', $pos, strlen($replace));

Acesta este primul rezultat pe Google când căutați imaginea completă a autorului, așa că ar putea ajuta pe cineva.

13 mai 2021 12:58:13
Comentarii

Nu cred că asta ar funcționa pentru Gravatarele implicite: dimensiunea nu este în URL în acel fel, este un parametru ?s=. Cum ai configurat avatarele tale? În plus, get_avatar_url are un parametru 'size' documentat în array-ul de argumente.

Rup Rup
13 mai 2021 13:48:24

@Rup Scuze!!! Ai dreptate, eu folosesc "Simple Local Avatars"(https://wordpress.org/plugins/simple-local-avatars/) pentru a permite utilizatorilor să-și seteze imaginile de profil local și cred că plugin-ul îmi permite să obțin un URL în formatul pe care îl am. Am uitat complet de acest plugin. Voi adăuga informații despre acest plugin în răspunsul de mai sus.

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

Acesta este tot ceea ce fac pentru a adăuga avatarul utilizatorului înregistrat.

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