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).
Az lenne a kérdésem, hogy megoldható-e ez? És ha igen, akkor hogyan? Előre is köszönöm.
Ui: Az avatart a sidebaron szeretném megjeleníteni.
Adminban engedélyezve van a gravatar megjelenítés?
Igen. De egy fontos részt kifelejtettem. A sidebaron szeretném megjeleníteni.
A gravatar.com-on ezt találtam: http://en.gravatar.com/site/implement/php De nem sikerült megoldanom a problémát.
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.
Erre jutottam:
<?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/
köszi megpróbálom. :)
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. 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:
$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:
global $current_user;
$email = $current_user->user_email;
vagy
$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! Rengeteget segítettél.