ცოტა ხნის წინ PCMania გაგვეთიშა. WordPress-ი დააპდეიტდა 4.2 ვერსიაზე, ამ უკანასკნელს კი get_avatar_url-ის ხელით გაწერილ ფუქნციაზე ‘ალერგია’ დაეწყო და მთელი სისტემა დაბლოკა.

მოკლედ აქამდე სტატიების ავტორების ფოტოებს (ავატარებს) ასე ვაჩენდი:

function get_avatar_url($get_avatar){
preg_match("/src='(.*?)'/i", $get_avatar, $matches);
return $matches[1];
}

და მერე ტემპლეიტში ვიძახებდით შემდეგნაირად :

< img src="<? echo get_avatar_url(get_avatar( $curauth->ID, 80 )); ?>" align="left" class="authorimage" />

კოდის სრული განხილვა ნახეთ ამ ვებგვერდზე: http://goo.gl/dWZ0Ka

WordPress 4.2 -ში ეს კოდი აღარ მუშაობს.

ღრმა კვლევა არ ჩამიტარებია თუ რატომ, პირდაპირ ახალ მეთოდზე მუშაობა დავიწყე. მოკლედ თუ თქვენც აქამდე წინა ან სხვა მეთოდს იყენებდით და აღარ მუშაობს, ჩემი კოდი სავარაუდოდ წაგადგებათ:

function my_gravatar_url()
{ // ვიღებთ მომხმარებლის იმეილს
$user_email = get_the_author_meta( 'user_email' );
// ვაკონვერტირებთ იმეილს md5 hash-ში და სურათის ზომას ვაყენებთ 80 პიქსელზე
$user_gravatar_url = 'http://www.gravatar.com/avatar/' . md5($user_email) . '?s=80';
// გამოგვაქვს უშუალოდ სურათის url
echo $user_gravatar_url; }

ტემპლეიტში კი უბრალოდ იძახებთ ფუნქციას საჭირო ადგილას (img ტეგში src ატრიბუტში)

< img src="<?php my_gravatar_url() ?>" />

შენიშვნა: გამოძახება ლუპის (loop) შიგნით უნდა ხდებოდეს ვინაიდან ფუნქციას სჭირდება ამოიცნოს მომხარებელი და ბაზიდან ამოიღოს მისი იმეილის მისამართი.

პოსტი PCMania-ს ფორუმის არქივიდან.