آموزش وردپرس

خطا در نمایش تصاویر کتابخانه رسانه وردپرس: 12 راه حل

وحید بهنام12 دقیقه مطالعه0 بازدید0 دیدگاه

اگر رسانه‌خانهٔ وردپرس‌تان ناگهان خالی شد و تصاویری که بارگذاری کرده‌اید نمایش داده نمی‌شود، احساس سردرگمی کاملاً طبیعی است. این مشکل می‌تواند به دلایل فنی متنوعی رخ دهد، اما هر کدام راه‌حل مشخصی دارد که با پیروی از مراحل دقیق می‌توانید به سرعت آن را برطرف کنید. در ادامه، به صورت گام به گام و با توضیحاتی عملی، دوازده روش مؤثر برای بازگرداندن تصاویر به رسانه‌خانه آورده شده است. هر روش با نکات کلیدی و هشدارهای رایج همراه است تا از بروز مجدد خطا جلوگیری کنید. با پیگیری این راهنمایی‌ها، کنترل کامل بر کتابخانهٔ رسانه‌ای‌تان را دوباره به دست می‌گیرید. آماده‌اید تا مشکل را به ریشه ببینید و به سرعت رفع کنید؟

فهرست مطالب

درک علت عدم نمایش تصاویر

در بسیاری از موارد، عدم نمایش تصویر در کتابخانهٔ رسانهٔ وردپرس به دلایل زیرین فنی مربوط می‌شود که در نگاه اول به‌ظاهر نامحسوس‌اند. ابتدا باید بررسی کنید که آیا تصویر به‌درستی در wp‑content/uploads ذخیره شده است یا نه؛ اگر فایل وجود نداشته باشد یا مسیر ذخیره‌سازی اشتباه باشد، مرورگر نمی‌تواند آن را لود کند.

دستهٔ رایجی از مشکلات مربوط به دسترسی‌های فایل (permissions) است. در سرورهای لینوکسی، پوشه uploads و زیرپوشه‌هایش باید به‌صورت 755 (دسترسی خواندن و نوشتن برای مالک) یا 775 (در صورت نیاز به گروه) تنظیم شوند. اگر این مقادیر بیش از حد محدود باشند (مثلاً 700)، وردپرس قادر به خواندن تصویر نخواهد بود و به‌جای آن یک آیکون شکسته نمایش می‌دهد.

مشکلات دیگر می‌توانند ناشی از تنظیمات .htaccess یا افزونه‌های امنیتی باشند. برخی قوانین بازنویسی URL (مانند RewriteRule ^wp‑content/(.*)$ - [F]) به‌صورت ناخواسته دسترسی به فایل‌های رسانه‌ای را مسدود می‌کنند. همین‌طور فعال‌سازی Hotlink protection (محافظت در برابر لینک‌برداری مستقیم) بدون استثنای دامنهٔ خود، باعث می‌شود مرورگر تصویر را از همان دامنه بارگذاری نکند.

دلیلعلت رایجراه‌حل سریع
دسترسی فایلpermissions نادرست (مثلاً 600)تنظیم به 755 یا 775
آدرس نادرستURL تصویر در دیتابیس اشتباه یا مسیر تغییر یافتهبازنویسی لینک با ابزار «Search & Replace»
قوانین .htaccessقفل‌کردن پوشه uploadsحذف یا اصلاح خط مربوطه
محدودیت حافظه PHPبارگذاری تصویر بزرگ باعث خطای 504 می‌شودافزایش memory_limit به 256M در php.ini
تداخل افزونهافزونهٔ بهینه‌سازی تصویر یا CDN که مسیرها را تغییر می‌دهدغیرفعال‌سازی موقت افزونه و بررسی نتیجه

یک مثال عملی: فرض کنید پس از نصب یک افزونهٔ کش جدید، تمام تصاویر در بخش مدیریت نمایش داده می‌شوند اما در ظاهر سایت به‌صورت جای خالی باقی می‌مانند. برای تشخیص علت، ابتدا wp‑admin/async‑upload.php را بررسی کنید؛ اگر در لاگ سرور خطای 403 Forbidden ببینید، به احتمال زیاد قانون .htaccess یا تنظیمات Hotlink protection دخیل است. با افزودن خط Header set Access‑Control‑Allow‑Origin "*" به .htaccess یا اضافه‌کردن دامنه به لیست سفید، مشکل برطرف می‌شود.

در نهایت، پس از اعمال هر تغییر، کش مرورگر و کش سرور (اگر از CDN استفاده می‌کنید) را پاک کنید تا مرورگر تصویر به‌روز شده را دریافت کند. این گام ساده می‌تواند از بروز دوبارهٔ مشکل جلوگیری کند و اطمینان دهد که کتابخانهٔ رسانهٔ شما همیشه در دسترس است.

رفع مشکل لینک‌های داخلی تصویر

گاهی اوقات تصویرها در کتابخانهٔ رسانه‌ها ظاهر می‌شوند اما در نوشته‌ها یا صفحات به‌عنوان لینک داخلی نمایش داده نمی‌شوند. این مشکل معمولاً به‌دلیل ناسازگاری مسیرهای ذخیره‌شدهٔ فایل‌های تصویر با آدرس فعلی سایت رخ می‌دهد و باعث می‌شود مرورگر نتواند تصویر را بارگذاری کند.

دلایل رایج این مشکل شامل تغییر آدرس WordPress Address (URL) یا Site Address (URL) پس از مهاجرت، تغییر پوشهٔ wp-content/uploads، یا اعمال قواعد نادرست در فایل .htaccess است. در چنین شرایطی مسیرهای کامل تصویر (مثلاً http://oldsite.com/wp-content/uploads/2023/05/image.jpg) هنوز در پایگاه داده ذخیره شده‌اند، در حالی که دامنه یا مسیر جدید https://newsite.com است.

برای رفع این مشکل می‌توانید گام‌های زیر را قدم به قدم دنبال کنید:

  1. آدرس‌های سایت را بررسی کنید: به Settings → General رفته و مطمئن شوید که دو فیلد «آدرس وردپرس» و «آدرس سایت» همگی با آدرس واقعی دامنهٔ فعلی مطابقت دارند.
  2. جستجو و جایگزینی در دیتابیس: از افزونه‌ای مثل Better Search Replace یا ابزار خط فرمان WP-CLI استفاده کنید تا تمام نمونه‌های آدرس قدیمی (مثلاً http://oldsite.com) را با آدرس جدید جایگزین کنید.
  3. بازسازی تصویرهای کوچک (thumbnails): پس از به‌روزرسانی مسیرها، افزونهٔ Regenerate Thumbnails را اجرا کنید تا فایل‌های سایزهای مختلف دوباره تولید شوند.
  4. بررسی قواعد .htaccess: اطمینان حاصل کنید که هیچ ریدایرکتی یا rewrite rule ای که مسیرهای تصویر را تغییر می‌دهد، فعال نیست.

یک روش سریع برای اطمینان از صحت مسیرها، استفاده از جدول زیر به‌عنوان «چک‌لیست بصری» است. کافی است هر مورد را پس از بررسی علامت بزنید:

چک‌لیستوضعیت
آدرس‌های عمومی در Settings → General صحیح‌اند یا
جستجو و جایگزینی URL قدیمی در دیتابیس انجام شد یا
تصویرهای کوچک دوباره تولید شدند یا
قواعد .htaccess بدون تداخل با مسیرهای /uploads/ هستند یا
نکات کلیدی برای رفع مشکل لینک داخلی تصویر

به‌عنوان مثال، اگر پس از مهاجرت سایت به دامنهٔ https://mynewsite.com فقط ۲ درصد از تصویرها نمایش داده می‌شوند، اجرای Better Search Replace برای جایگزینی http://oldsite.com با https://mynewsite.com معمولاً مشکل را در کمتر از یک دقیقه حل می‌کند. پس از اعمال تغییرات، صفحهٔ موردنظر را دوباره بارگذاری کنید؛ باید تصویرها بدون هیچ خطایی بارگذاری شوند.

تنظیمات اندازه‌های تصویر و کش

در اکثر نصب‌های وردپرس، سیستم به‌صورت پیش‌فرض سه اندازهٔ تصویر (thumbnail ، medium ، large) را تولید می‌کند. اگر این مقادیر به‌درستی تنظیم نشوند، مرورگر ممکن است سعی کند تصویری بزرگ را بارگذاری کند در حالی که صفحه فقط به یک تصویر کوچک نیاز دارد؛ این باعث می‌شود کش (Cache) به‌سرعت پر شود و کتابخانهٔ رسانه‌ها گاهی تصویرها را نشان ندهد. برای جلوگیری از این مشکل، ابتدا به تنظیمات → مدیا رفته و اندازه‌های پیش‌فرض را متناسب با طراحی قالب خود تنظیم کنید.

یک تنظیم مناسب می‌تواند به‌صورت زیر باشد:

نام اندازهعرض (px)ارتفاع (px)توضیح
Thumbnail150150برای گالری‌ها و فهرست‌ها
Medium300300مناسب برای متن‌های داخل پست
Large10241024برای نمایش تمام‌صفحه یا اسلایدرها
مثال تنظیمات پیشنهادی برای اکثر قالب‌های مدرن

پس از اعمال تغییرات، وردپرس به‌صورت خودکار برای تصاویر جدید اندازه‌های جدید را می‌سازد، اما برای تصاویر موجود باید از یک افزونهٔ بازسازی (مانند Regenerate Thumbnails) استفاده کنید. این ابزار تمام فایل‌های قبلی را اسکن می‌کند و نسخه‌های جدیدی بر اساس اندازه‌های به‌روزرسانی شده می‌سازد؛ به‌این ترتیب مرورگر نیازی به درخواست نسخهٔ بزرگتر نخواهد داشت و کش به‌صورت مؤثرتری کار می‌کند.

در نهایت، اگر از افزونهٔ کش (مانند WP Super Cache یا LiteSpeed Cache) استفاده می‌کنید، پس از تغییر اندازه‌های تصویر، حتماً کش مرورگر و سرور را پاک کنید. یک روش ساده این است:

  1. به داشبورد وردپرس > تنظیمات > کش بروید.
  2. دکمهٔ «پاک‌سازی تمام کش» یا «Clear All Caches» را بزنید.
  3. اگر از CDN (شبکهٔ توزیع محتوا) استفاده می‌کنید، نسخهٔ کش شدهٔ تصاویر را نیز در پنل CDN حذف کنید.

به‌کارگیری این گام‌ها باعث می‌شود که کتابخانهٔ رسانه‌ها به‌سرعت تصاویر مناسب را بارگذاری کند، مصرف پهنای باند کاهش یابد و خطاهای «تصویر پیدا نشد» به‌طور قابل توجهی کمتر شوند.

به‌روزرسانی و سازگاری افزونه‌ها

افزونه‌های منقضی یا ناسازگار یکی از دلایل اصلی ناپدید شدن تصاویر در کتابخانهٔ رسانهٔ وردپرس هستند. وقتی یک افزونه از توابع داخلی وردپرس استفاده می‌کند که در نسخهٔ جدید تغییر یافته‌اند، ممکن است واکنش صحیحی نشان ندهد و به‌خصوص در بخش نمایش فایل‌های چندرسانه‌ای اختلال ایجاد شود. این مشکل نه تنها به‌نظر می‌رسد که «تصاویر گمشده‌اند» بلکه می‌تواند باعث بروز خطاهای JavaScript و بارگذاری ناقص صفحات ادمین شود.

به‌منظور رفع این مشکل ابتدا باید تمام افزونه‌ها را به آخرین نسخهٔ موجود ارتقاء دهید. مراحل پیشنهادی به‌صورت زیر است:

  • از پیش‌نمایش (Staging) سایت استفاده کنید تا به‌روزرسانی‌ها را بدون خطر برای سایت زنده تست کنید.
  • در پیش‌خوان وردپرس، به بخش افزونه‌ها → افزونه‌های نصب‌شده بروید و گزینهٔ «به‌روزرسانی» را برای هر افزونه‌ای که علامت هشدار دارد، کلیک کنید.
  • پس از به‌روزرسانی، یک بار کش مرورگر و کش سرور (اگر از افزونهٔ کش استفاده می‌کنید) را پاک کنید.
  • اگر پس از به‌روزرسانی مشکل ادامه داشت، افزونه را یکی‌یکی غیرفعال کنید تا منبع تداخل شناسایی شود.

در کنار به‌روزرسانی، بررسی سازگاری افزونه‌ها با نسخهٔ فعلی وردپرس الزامی است. جدول زیر یک مرور سریع از نکات کلیدی را نشان می‌دهد:

عامل بررسیاقدام پیشنهادی
نسخهٔ وردپرساطمینان از استفاده از آخرین نسخهٔ اصلی؛ در صورت نیاز به ارتقاء، پیش‌از تمام‌پیش‌نویس‌ها پشتیبان بگیرید.
تداخل افزونه‌هابا غیرفعال‌سازی موقت همهٔ افزونه‌ها، سپس فعال‌سازی تدریجی، نقطهٔ تداخل را پیدا کنید.
قالب فعالاز قالب پیش‌فرض (مثل Twenty Twenty‑Three) استفاده کنید تا مطمئن شوید مشکل از قالب نیست.
خطاهای JavaScriptکنسول مرورگر را باز کنید؛ پیام‌های خطا را بررسی و به‌روزرسانی یا تعویض افزونه‌ای که منبع خطاست کنید.

مثال عملی: وب‌سایتی با افزونهٔ مدیریت گالری «NextGen Gallery» که پس از ارتقاء به وردپرس 6.5 دیگر تصاویر را نشان نمی‌داد. با دنبال کردن مراحل بالا، ابتدا افزونه را در محیط استیجینگ به‌روزرسانی کردیم؛ سپس کش پاک شد و در جدول سازگاری دیدیم که این افزونه هنوز با PHP 8.2 سازگار نیست. با نصب یک نسخهٔ جایگزین که به‌روز بوده (مثلاً «Modula Image Gallery»)، مشکل حل شد و کتابخانهٔ رسانه به‌درستی کار کرد.

تست با قالب پیش‌فرض وردپرس

اگر کتابخانهٔ رسانه در وب‌سایت‌تان تصاویر را نشان نمی‌دهد، اولین قدم منطقی این است که مطمئن شوید مشکل از قالب فعال نیست. برخی قالب‌های سفارشی کدهای CSS یا JavaScript خاصی دارند که به‌طور ناخواسته مسیرهای فایل‌های تصویری را تغییر می‌دهند یا دسترسی به پوشه uploads را محدود می‌کنند. (مانند Twenty Twenty‑Three) به شما امکان می‌دهد یک محیط «پاک» داشته باشید و ببینید آیا مشکل همچنان پابرجاست یا نه.

برای انجام این تست، به پیشخوان وردپرس رفته و از منوی نمایش → قالب‌ها قالب پیش‌فرض را فعال کنید. اگر قالب پیش‌فرض نصب نشده باشد، می‌توانید با کلیک بر روی دکمهٔ «افزودن» و جستجوی «Twenty Twenty‑Three» آن را نصب کنید. پس از فعال‌سازی، کش مرورگر و افزونه‌های کش (مانند WP Super Cache) را پاک کنید تا تغییرات بلافاصله منعکس شوند. این کار تضمین می‌کند که هیچ دادهٔ قدیمی‌ای مانع نمایش تصاویر نشود.

حالا کتابخانهٔ رسانه را دوباره باز کنید. اگر تصاویر به‌درستی ظاهر شدند، به این معنی است که قالب قبلی‌تان عامل اصلی مشکل بوده و باید کدهای سفارشی یا استایل‌های آن را بررسی کنید. در صورتی که هنوز تصاویر نمایش داده نمی‌شوند، احتمالاً مشکل به‌سطح افزونه یا تنظیمات سرور است. برای روشن شدن بیشتر می‌توانید نتایج را در جدول زیر خلاصه کنید:

مرحلهاقدامنتیجهٔ مورد انتظار
1فعال‌سازی قالب پیش‌فرضقالب به‌صورت موقت جایگزین می‌شود
2باز کردن کتابخانهٔ رسانهتصاویر باید ظاهر شوند
3اگر هنوز مخفی‌اندبه احتمال زیاد مشکل از افزونه یا تنظیمات سرور است

یک نکتهٔ عملی: اگر وب‌سایت‌تان در محیط تولید (live) است، بهتر است این تست را در یک استیجینگ یا نسخهٔ محلی انجام دهید تا بازگشت به قالب اصلی بدون ایجاد اختلال برای بازدیدکنندگان امکان‌پذیر باشد. پس از پایان تست، قالب قبلی را دوباره فعال کنید؛ در صورت نیاز می‌توانید بخش‌های کد سفارشی را به‌صورت جداگانه بررسی و اصلاح کنید تا کتابخانهٔ رسانه به‌صورت دائمی کار کند.

پیکربندی مجدد دسترسی‌های فایل‌ها

اگر تصاویر در کتابخانه رسانه وردپرس ظاهر نمی‌شوند، یکی از دلایل شایع عدم تطابق سطوح دسترسی (permissions) بر روی پوشه‌ها و فایل‌های wp‑content/uploads است. سرورهای لینوکسی برای حفظ امنیت، دسترسی‌های دقیق را اعمال می‌کنند؛ وقتی این تنظیمات به‌درستی پیکربندی نشده باشند، وب‌سرور نمی‌تواند فایل‌های تصویر را بخواند و در نتیجه آن‌ها در پیشخوان نمایش داده نمی‌شوند. ابتدا با یک کلاینت FTP یا دسترسی SSH به ریشه سایت متصل شوید و مسیر wp‑content/uploads را بررسی کنید.

در اکثر موارد، پوشه‌های داخل uploads باید دارای دسترسی 755 (rwxr-xr-x) باشند و فایل‌های تصویر باید دسترسی 644 (rw-r–r–) داشته باشند. برای اعمال این مقادیر می‌توانید از دستورات زیر استفاده کنید (در محیط SSH):

CODE
find wp-content/uploads -type d -exec chmod 755 {} ;
find wp-content/uploads -type f -exec chmod 644 {} ;

دستورات فوق به‌صورت بازگشتی (recursive) بر همه پوشه‌ها و فایل‌های موجود در uploads اجرا می‌شود و از این‌رو نیازی به تنظیم دستی هر مورد نیست.

نوعسطح دسترسی پیشنهادیتوضیح کوتاه
پوشه اصلی uploads755قابلیت خواندن و اجرای برای وب‌سرور، نوشتن فقط برای مالک
پوشه‌های فرعی (سال/ماه)755همانند پوشه اصلی، به‌خصوص برای آپلود خودکار مهم است
فایل‌های تصویر (jpg, png, gif)644وب‌سرور می‌تواند بخواند، اما فقط مالک می‌تواند ویرایش کند

پس از اعمال دسترسی‌ها، کش مرورگر و کش افزونه‌های کش‌ساز (مانند WP Super Cache) را خالی کنید؛ گاهی اوقات مرورگر همچنان نسخهٔ قبلی صفحه را نشان می‌دهد. یک تست سریع این است که یک تصویر جدید آپلود کنید؛ اگر این تصویر بلافاصله در کتابخانه ظاهر شد، مشکل دسترسی حل شده است. در صورتی که هنوز تصویر نمایش داده نشود، اطمینان حاصل کنید که مالکیت (owner) فایل‌ها به کاربری که وب‌سرور (مثلاً www‑data یا apache) اجرا می‌کند، اختصاص یافته باشد؛ می‌توانید با دستور chown -R www-data:www-data wp-content/uploads این کار را انجام دهید.

سوالات متداول

چرا کتابخانه رسانه وردپرس تصویرها را نشان نمی‌دهد؟

ممکن است کش مرورگر یا کش سایت مانع نمایش شود. ابتدا کش مرورگر را پاک کنید و سپس در داشبورد وردپرس به ابزارهای > پاک‌سازی کش بروید. اگر مشکل ادامه داشت، به مراحل بعدی مراجعه کنید.

آیا تغییر نام پوشه wp‑content باعث مخفی شدن تصاویر می‌شود؟

بله، اگر مسیر پیش‌فرض wp‑content یا uploads تغییر کند، وردپرس مسیرهای قدیمی را نمی‌شناسد. فایل wp‑config.php یا تنظیمات افزونه‌های مدیریت رسانه را بررسی کنید و مسیر را به مقدار پیش‌فرض بازگردانید.

چرا تصاویر بارگذاری می‌شوند اما در کتابخانه نمایش داده نمی‌شوند؟

این اتفاق معمولاً به دلیل دسترسی نادرست فایل‌ها یا پوشه‌ها رخ می‌دهد. اطمینان حاصل کنید مجوزهای 755 برای پوشه uploads و 644 برای فایل‌های داخل آن تنظیم شده است. سپس از صفحه رسانه دکمه بازسازی یا Regenerate Thumbnails را اجرا کنید.

آیا فعال‌سازی افزونه امنیتی می‌تواند کتابخانه را مخفی کند؟

برخی افزونه‌های امنیتی تنظیماتی دارند که دسترسی به پوشه uploads را محدود می‌کنند. تنظیمات مربوط به File System یا Hide wp‑content را غیرفعال کنید یا استثنا برای admin اضافه کنید. پس از تغییر، مرورگر را ریفرش کنید.

چک‌لیست سریع

  • علت عدم نمایش را شناسایی کنید
  • تنظیمات عمومی کتابخانه رسانه را بررسی کنید
  • آدرس‌های داخلی تصاویر را اصلاح یا بازنشانی کنید
  • کش اندازه‌های تصویر و تنظیمات ابعاد را پاک‌سازی کنید
  • افزونه‌ها را به‌روز و سازگار با نسخه وردپرس کنید
  • قالب پیش‌فرض وردپرس را فعال و تست کنید
  • دسترسی‌های فایل‌ها و پوشه‌ها را بازنگری کنید

اکنون می‌توانید تنظیمات کتابخانه رسانه را بازبینی کنید، لینک‌های تصویر را اصلاح کنید و کش اندازه‌ها را پاک کنید. به‌روزرسانی افزونه‌ها و تست با قالب پیش‌فرض نیز به شناسایی منبع مشکل کمک می‌کند. اگر پس از این مراحل هنوز مشکلی داشتید، می‌توانید دسترسی‌های فایل‌ها را دوباره تنظیم کنید یا در انجمن‌های تخصصی سؤال کنید.

نوشته‌شده و بازبینی‌شده توسط

متخصص سئو، وردپرس و تولید محتوا

اولین نفری باش که نظر می‌ده!

فقط نام لازم است، ایمیل اختیاریه و منتشر نمی‌شه.