تابع get_avatar در وردپرس
تابع get_avatar() یکی از ابزارهای اصلی وردپرس برای نمایش آواتار کاربران، نویسندگان و کامنتها است. این تابع به صورت پویا تگ تصویر آواتار را تولید میکند و از سرویس Gravatar استفاده میکند مگر اینکه آواتار محلی یا تنظیم دیگری وجود داشته باشد. در این مقاله به صورت کامل پارامترها، کاربردها، مثالهای عملی و نکات بهینهسازی و امنیتی را بررسی میکنیم.
نحوهی عملکرد پایه
تابع get_avatar() میتواند چند نوع مقدار را بپذیرد: آدرس ایمیل، شناسه کاربر (user ID)، شیء WP_User یا WP_Comment. خروجی پیشفرض یک رشته HTML شامل تگ <img> همراه با صفتهای src و srcset و کلاسهای مناسب است.
امضای تابع (نسخه مرجع)
| پارامتر | توضیح |
|---|---|
| id_or_email | ایمیل، شناسه کاربر یا شیء کامنت/کاربر |
| size | اندازه آواتار به پیکسل (پیشفرض معمولاً 96) |
| default | آدرس یا نام آواتار پیشفرض در صورت عدم وجود Gravatar |
| alt | متن جایگزین تصویر |
| args | آرایهای از آرگومانهای اضافی (کلاس، extra_attr و …) |
مثال ساده
<?php
// نمایش آواتار بر اساس شناسه کاربر
echo get_avatar( 12, 80, '', 'تصویر نویسنده' );
// نمایش با ایمیل
echo get_avatar( 'user@example.com', 64 );
?>
در این مثال اولی آواتار کاربر با شناسه 12 و اندازه 80 پیکسل را نمایش میدهد؛ دومی بر اساس ایمیل و اندازه 64. پارامتر سوم در مثال اول به عنوان مقدار پیشفرض خالی قرار داده شده و پارامتر چهارم متن جایگزین (alt) است.
استفاده از آرایه args برای کنترل بیشتر
<?php
$avatar_args = array(
'class' => 'custom-avatar rounded',
'extra_attr' => 'loading="lazy" data-user="12"',
);
echo get_avatar( 12, 128, '', 'نویسنده سایت', $avatar_args );
?>
در این بلوک از آرایه args برای افزودن کلاس دلخواه و صفتهای اضافی استفاده کردیم. ویژگی loading=”lazy” باعث میشود بارگذاری تصویر تنبل شود که در بهبود زمان بارگذاری صفحات مؤثر است.
دریافت تنها آدرس تصویر (get_avatar_url)
<?php
// گرفتن فقط URL آواتار بدون تگ img
$avatar_url = get_avatar_url( get_current_user_id(), array( 'size' => 200 ) );
?>
اگر نیاز دارید فقط URL تصویر را دریافت کنید (مثلاً برای استفاده در CSS یا ساختن تگ picture سفارشی)، از get_avatar_url() استفاده کنید. توجه داشته باشید که این تابع از همان منطق تعیین آواتار بهره میبرد.
افزودن آواتار پیشفرض محلی
<?php
// افزودن گزینه آواتار پیشفرض در تنظیمات وردپرس
add_filter( 'avatar_defaults', function( $defaults ) {
$defaults['/wp-content/uploads/avatars/default-avatar.png'] = 'آواتار سایت';
return $defaults;
});
?>
این فیلتر یک گزینه جدید در تنظیمات رسانه/آواتار اضافه میکند تا مدیر سایت بتواند آواتار پیشفرض محلی را انتخاب کند. مسیر تصویر را متناسب با ساختار سایت خود تنظیم کنید.
جایگزینی HTML خروجی با فیلتر get_avatar
<?php
add_filter( 'get_avatar', function( $avatar, $id_or_email, $size, $default, $alt ) {
// به عنوان مثال اضافه کردن wrapper و title
return '<span class="avatar-wrapper" title="User avatar">' . $avatar . '</span>';
}, 10, 5 );
?>
فیلتر get_avatar قبل از بازگشت HTML نهایی اجرا میشود. در این مثال ما یک wrapper اضافه کردهایم؛ میتوانید این فیلتر را برای حذف Gravatar و جایگزینی با آواتار محلی هم استفاده کنید.
نکات عملکرد و حریم خصوصی
- Gravatar یک سرویس خارجی است؛ هر بار که صفحه حاوی آواتار بارگذاری میشود ممکن است درخواست به gravatar.com ارسال شود که مسئلهٔ حریم خصوصی کاربران را مطرح میکند. برای جلوگیری از این موضوع از آواتار محلی یا افزونههایی که آواتار را کش میکنند استفاده کنید.
- برای بهبود سرعت، از lazy loading و اندازه مناسب (size) استفاده کنید. کوچک کردن سایز آواتار در لیستها عملکرد را بهبود میبخشد.
- حتماً خروجی HTML را با توابع امنسازی مانند esc_attr و esc_url در صورتی که تغییر دستی اعمال میکنید، ایمن کنید.
موارد کاربردی و سناریوها
- نمایش آواتار در لیست نویسندگان، پروفایلها و بخش نظرات.
- استفاده در سیستمهای ثبتنام سفارشی که آواتار محلی آپلود میکنند؛ میتوانید به جای ارسال ایمیل به Gravatar آواتار آپلود شده را نشان دهید.
- ایجاد کارت نویسنده در پایان نوشته با اندازههای مختلف آواتار (thumbnail, large).
نکات پیشرفته و اشکالزدایی
- اگر آواتار نمایش داده نمیشود، بررسی کنید که ایمیل کاربر در Gravatar ثبت نشده یا آواتار محلی تنظیم نشده باشد. همچنین برخی تمها یا افزونهها فیلتر get_avatar را بازنویسی میکنند.
- برای تولید srcset یا WebP سفارشی، میتوانید از فیلتر get_avatar_data استفاده کنید تا دادههای تصویر را قبل از تولید تگ تغییر دهید.
جمعبندی
تابع get_avatar() ابزار ساده اما قدرتمندی برای نمایش آواتارها در وردپرس است. با درک پارامترها، فیلترها و تعامل آن با سرویس Gravatar میتوانید کنترل کاملتری روی نمایش تصاویر کاربران داشته باشید؛ از جمله استفاده از آواتار محلی، بهینهسازی عملکرد و رعایت حریم خصوصی. برای کاربردهای پیچیدهتر، ترکیب get_avatar_url، فیلترها و ذخیرهسازی محلی بهترین راهکار است.
آیا این مطلب برای شما مفید بود ؟




