Felhasználó gravatarjának megjelenítése, bővítmény nélkül

Sziasztok! Olyan gondom van, hogy a blogomban a megszeretném jeleníteni a regisztrált felhasználók gravatarját, bővítmények nélkül. Átnéztem a WordPress fájlait hátha a hozzászólásoknál megtalálom a megoldást, de csak ennyit sikerült találnom: <?php if ($args != 0) echo get_avatar( $comment, $args ); ?> És ezt hiába illesztem be, nem jeleníti meg az avataromat (és így mások avatarját sem). :frowning:











Az lenne a kérdésem, hogy megoldható-e ez? És ha igen, akkor hogyan? :slight_smile: Előre is köszönöm.











Ui: Az avatart a sidebaron szeretném megjeleníteni. :slight_smile:

Adminban engedélyezve van a gravatar megjelenítés?

Igen. De egy fontos részt kifelejtettem. :smiley: A sidebaron szeretném megjeleníteni. :slight_smile:

A gravatar.com-on ezt találtam: http://en.gravatar.com/site/implement/php De nem sikerült megoldanom a problémát. :frowning:

Sikerült megcsinálnom félig ez alapján: http://www.talkphp.com/script-giveaway/1905-gravatar-wrapper-class.html De szükségem volna egy scriptre, mellyel kinyerhetem az épp bejelentkezett felhasználó email-jét. :slight_smile:

Erre jutottam:



Code:



<?php



class get_gravatar

{

private $m_szImage;

private $m_szEmail;

private $m_iSize;

private $m_szRating;

private $m_szDefaultImage;



const GRAVATAR_SITE_URL = 'http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=%';



public function __construct()

{

$this->m_iSize = 80;

$this->m_szRating = 'R';

$this->m_szImage = '';

$this->m_szDefaultImage = '';

}



public function getAvatar()

{

return (string) sprintf

(

self::GRAVATAR_SITE_URL,

$this->m_szEmail,

$this->m_iSize,

$this->m_szImage,

$this->m_szRating,

$this->m_szDefaultImage

);

}



public function setImage($szImage)

{

$this->m_szImage = (string) urlencode($szImage);

return $this;

}



public function setDefaultImageAsIdentIcon()

{

$this->m_szDefaultImage = 'identicon';

return $this;

}



public function setDefaultImageAsMonsterId()

{

$this->m_szDefaultImage = 'monsterid';

return $this;

}



public function setDefaultImageAsWavatar()

{

$this->m_szDefaultImage = 'wavatar';

return $this;

}



public function setEmail($szEmail)

{

$this->m_szEmail = (string) md5($szEmail);

return $this;

}



public function setSize($iSize)

{

$this->m_iSize = (int) $iSize;

return $this;

}



public function setRatingAsG()

{

$this->m_szRating = 'G';

return $this;

}



public function setRatingAsPG()

{

$this->m_szRating = 'PG';

return $this;

}



public function setRatingAsR()

{

$this->m_szRating = 'R';

return $this;

}



public function setRatingAsX()

{

$this->m_szRating = 'X';

return $this;

}

}



$pAvatar = new get_gravatar();

$pAvatar->setEmail('example@example.hu')->setSize(80)->setRatingAsPG()->setDefaultImageAsIdentIcon();



?>

[img]getAvatar();%20?>[/img]





Csak az a kérdésem, hogy hogyan lehet kiolvasni a bejelentkezett felhasználó email címét? :)

Bár azt írtad, bővítmény nélkül kell neked, de szerintem ebből a bővítményből (ami épp azt tudja, amit te szeretnél), ki tudod szedni, hogy csinálja: http://wordpress.org/extend/plugins/wp-recentcomments/


'hitetlen wrote:

Bár azt írtad' date=' bővítmény nélkül kell neked, de szerintem ebből a bővítményből (ami épp azt tudja, amit te szeretnél), ki tudod szedni, hogy csinálja: [url']http://wordpress.org/extend/plugins/wp-recentcomments/[/url]





köszi megpróbálom. :)

D(N)S wrote:




köszi megpróbálom. :)





Nem találtam benne semmit ami használható lett volna. :(

Átnéztem még egyszer a wordpress.org-ot és találtam egy bővítményt, melyből kiderül, hogy nem a bejelentkezett felhasználó email címét kéri le a wp, hanem a comment küldőjét. :frowning: Szóval lehet, hogy ezt nem lehet megvalósítani.

Szerintem meg lehet oldani plugin nélkül.





Így tudod kilistázni az összes regisztrált felhasználó avatarját:









Code:



$users_of_blog = get_users_of_blog();

foreach ( (array) $users_of_blog as $_user )

{

$email = $_user->user_email;

$email_hash = md5($email);

?>

<img src="http://www.gravatar.com/avatar.php?gravatar_id=" alt="">display_name; ?>" />

<?php

}

unset($email);

unset($email_hash);

unset($_user);

unset($users_of_blog);








Az aktuálisan bejelentkezett felhasználó e-mail címét két féle képpen érheted el:





Code:



global $current_user;

$email = $current_user->user_email;








vagy





Code:



$current_user = wp_get_current_user();

$email = $current_user->user_email;








Ezt a kettőt gondolom már nem lesz nehéz összehozni ;)

Ez működik! Nagyon köszönöm! :slight_smile: Rengeteget segítettél.