
مشکل آپلود نشدن تصاویر در وردپرس از آن خطاهایی است که میتواند علتهای کاملاً متفاوتی داشته باشد. گاهی فقط یک فایل خاص آپلود نمیشود، گاهی کتابخانه رسانه خطای دسترسی میدهد و در بعضی مواقع هم پیامهایی مانند HTTP Error یا Unable to create directory نمایش داده میشوند. به همین دلیل بهتر است بهجای تغییر چند تنظیم بهصورت تصادفی، مرحلهبهمرحله علت اصلی را پیدا کنیم.
در این راهنما راهحلها را از سادهترین و کمریسکترین مورد شروع میکنیم؛ ابتدا خود فایل و محدودیت حجم را بررسی میکنیم، بعد سراغ مجوز پوشه uploads، حافظه PHP، افزونهها، قالب، کش و نسخه PHP میرویم. اگر مشکل از سرور باشد نیز مشخص میکنیم چه زمانی بهتر است ادامه کار را به پشتیبانی هاست بسپارید.
wp-config.php، .htaccess یا تنظیمات سرور را تغییر دهید، ابتدا یک نسخه پشتیبان تهیه کنید. برای بسیاری از کاربران، بررسی تنظیمات از پنل هاست یا درخواست از پشتیبانی امنتر از ویرایش مستقیم فایلهای سرور است.مشکل آپلود نشدن فقط یک فایل
اگر چند تصویر را بدون مشکل آپلود میکنید اما فقط یک فایل خاص بارگذاری نمیشود، ابتدا خود همان فایل را بررسی کنید. در این حالت احتمال اینکه مشکل از کل وردپرس یا پوشه رسانه باشد کمتر است.
حجم فایل بیشتر از محدودیت هاست است

در صفحه افزودن رسانه، وردپرس حداکثر حجم قابل آپلود را نشان میدهد. اگر حجم تصویر از این مقدار بیشتر باشد، فایل آپلود نمیشود. این محدودیت را PHP و تنظیمات سرور تعیین میکنند.
قبل از هر تغییر، از مسیر ابزارها → سلامت سایت → اطلاعات بخش مربوط به رسانه و سرور را بررسی کنید. در آنجا میتوانید مقدار حداکثر اندازه فایل آپلودی و حداکثر اندازه داده ارسالی را ببینید.
اگر هاست شما اجازه ویرایش php.ini را میدهد، پارامترهای اصلی مرتبط با حجم آپلود اینها هستند:
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 300
upload_max_filesize حداکثر حجم یک فایل را تعیین میکند و post_max_size باید حداقل به اندازه آن باشد. قرار دادن این مقادیر داخل یک فایل جدید php.ini روی همه هاستها عمل نمیکند؛ روش تغییر تنظیمات PHP به نوع سرور و شرکت هاست بستگی دارد.
نام فایل را ساده کنید
اگر حجم فایل مناسب است، نام آن را بررسی کنید. استفاده از نامهای بسیار طولانی یا بعضی کاراکترهای خاص میتواند در برخی سرورها مشکل ایجاد کند. برای آزمایش، نام تصویر را ساده و کوتاه کنید؛ برای مثال:
product-image-01.jpg
بعد فایل را دوباره آپلود کنید. اگر با نام جدید آپلود شد، مشکل از خود فایل یا نام قبلی آن بوده است.
مشکل آپلود تصاویر در کتابخانه رسانه

اگر پیام زیر را میبینید، مشکل معمولاً به دسترسی نوشتن در پوشه آپلود مربوط است:
Unable to create directory wp-content/uploads/...
Is its parent directory writable by the server?
وردپرس برای ذخیره تصاویر باید بتواند داخل wp-content/uploads پوشه و فایل ایجاد کند. این خطا میتواند از مجوز نامناسب، مالکیت اشتباه فایلها یا تنظیمات هاست ایجاد شود.
مجوز پوشه uploads را بررسی کنید

از طریق FTP یا File Manager هاست وارد wp-content شوید، پوشه uploads را پیدا کنید و تنظیمات مجوز را باز کنید.

برای بسیاری از هاستها، مقدار رایج برای پوشهها 755 است. اگر هاست شما تنظیم متفاوتی نیاز دارد، همان مقدار اعلامشده توسط پشتیبانی را استفاده کنید.
گزینه Recurse into subdirectories را فقط زمانی فعال کنید که دقیقاً میدانید مجوز باید روی زیرپوشهها نیز اعمال شود. برای پوشهها گزینه Apply to directories only مناسب است.

برای فایلهای معمولی، مقدار رایج 644 است. اگر میخواهید این مقدار فقط روی فایلها اعمال شود، Apply to files only را انتخاب کنید.
مجوز 777 قرار ندهید. اگر 755 برای پوشه و 644 برای فایل جواب نمیدهد، ممکن است مشکل از مالکیت فایلها یا تنظیمات کاربر PHP باشد و بهتر است هاست آن را بررسی کند.
رفع خطای HTTP هنگام آپلود تصاویر

پیام HTTP Error یک علت واحد ندارد. ممکن است مشکل موقتی ارتباط، محدودیت حافظه، پردازش تصویر، افزونه امنیتی یا تنظیمات سرور باعث آن شده باشد.
1. صفحه را دوباره بارگذاری و دوباره وارد وردپرس شوید

اولین کار ساده است: صفحه را تازهسازی کنید و دوباره فایل را آپلود کنید. اگر نشست ورود شما منقضی شده باشد، وردپرس شما را به صفحه ورود برمیگرداند. همچنین ممکن است اختلال کوتاهمدت شبکه یا هاست باعث قطع شدن درخواست آپلود شده باشد.
2. حد حافظه PHP را بررسی کنید

پردازش تصاویر بزرگ میتواند حافظه بیشتری مصرف کند. اگر گزارش سلامت سایت یا خطاهای سرور نشان میدهند حافظه PHP کم است، میتوانید مقدار حافظه وردپرس را بررسی کنید.
define( 'WP_MEMORY_LIMIT', '256M' );
این مقدار فقط درخواست وردپرس برای حافظه بیشتر است و نمیتواند محدودیت سختی را که شرکت هاست روی PHP گذاشته دور بزند. اگر مقدار واقعی سرور کمتر باشد، باید از پنل هاست یا پشتیبانی آن را افزایش دهید.
3. پردازش تصویر را در سلامت سایت بررسی کنید

وردپرس برای پردازش تصویر از ابزارهای رسانهای سرور استفاده میکند. در نسخههای جدید میتوانید از مسیر ابزارها → سلامت سایت → اطلاعات → مدیریت رسانه ببینید چه ویرایشگر تصویری فعال است، چه فرمتهایی پشتیبانی میشوند و آیا آپلود فایل فعال است یا نه.
اگر خطا واقعاً به ImageMagick یا Imagick مربوط باشد، گزارش سلامت سایت یا گزارش خطای سرور میتواند آن را مشخص کند. در این شرایط بهتر است پشتیبانی هاست تنظیمات مربوط را بررسی کند و از اضافه کردن کدهای ناشناخته به .htaccess بدون تشخیص دقیق مشکل خودداری کنید.
در نسخههای جدید وردپرس بخشی از پردازش رسانه میتواند در مرورگر انجام شود، اما سازگاری سرور و کتابخانههای رسانه همچنان اهمیت دارد. بنابراین وارد کردن کدهای ناشناخته در .htaccess را بهعنوان اولین راهحل پیشنهاد نمیکنیم.
4. روش معمول آپلود رسانه را دوباره امتحان کنید

برای آزمایش، از مسیر رسانه → افزودن پرونده رسانه جدید فایل را انتخاب کنید و دوباره آپلود را انجام دهید. اگر در محیط وردپرس شما گزینههای بیشتری برای بارگذاری فایل نمایش داده میشود، همان مسیر استاندارد رسانه را مبنا قرار دهید.
اگر فایل از کتابخانه رسانه آپلود میشود اما از داخل ویرایشگر نوشته آپلود نمیشود، احتمال تداخل افزونه یا اسکریپت در همان صفحه بیشتر است.
5. افزونهها را موقتاً غیرفعال کنید

افزونههای بهینهسازی تصویر، امنیت، فایروال، مدیریت رسانه یا حتی بعضی افزونههای کش میتوانند درخواست آپلود را تغییر دهند. برای عیبیابی، افزونههایی را که اخیراً نصب یا بروزرسانی کردهاید یکییکی غیرفعال کنید و بعد از هر مرحله آپلود را آزمایش کنید.
اگر با غیرفعال کردن یک افزونه مشکل برطرف شد، ابتدا نسخه جدیدتر آن افزونه را بررسی کنید و اگر مشکل ادامه داشت، با پشتیبانی افزونه تماس بگیرید.
6. قالب را موقتاً تغییر دهید

تداخل قالب کمتر از افزونهها رخ میدهد، اما غیرممکن نیست. اگر مشکل بعد از بروزرسانی یا تغییر قالب شروع شده، ابتدا نسخه پشتیبان بگیرید و در یک زمان کمترافیک یا محیط آزمایشی، موقتاً یکی از قالبهای پیشفرض فعلی وردپرس را فعال کنید.
اگر آپلود با قالب پیشفرض انجام شد، مشکل احتمالاً از کد یا یکی از امکانات قالب فعال است و باید آن را با توسعهدهنده قالب بررسی کنید.
7. کش مرورگر و کش سایت را پاک کنید

گاهی فایلهای JavaScript قدیمی یا کش پنل مدیریت باعث میشوند رابط آپلود درست کار نکند. کش مرورگر را پاک کنید یا همان صفحه را در پنجره ناشناس مرورگر باز کنید. اگر از افزونه کش استفاده میکنید، کش سایت را هم پاک کنید.
اگر فقط در یک مرورگر مشکل دارید اما در مرورگر دیگر آپلود انجام میشود، احتمالاً مشکل محلی مرورگر یا افزونههای نصبشده روی آن است.
8. نسخه PHP را بررسی کنید

برای سایتهای وردپرسی، بهتر است از نسخههای پشتیبانیشده و جدید PHP استفاده کنید. WordPress.org در حال حاضر استفاده از PHP 8.3 یا بالاتر را توصیه میکند. PHP 7.4 به پایان عمر رسمی رسیده است و برای سایت جدید انتخاب مناسبی نیست.
قبل از تغییر PHP، سازگاری قالب و افزونههای سایت را بررسی کنید. بعد نسخه را از پنل هاست تغییر دهید یا از پشتیبانی بخواهید این کار را انجام دهد. بعد از ارتقا، صفحه اصلی، پیشخوان، فرمها، آپلود رسانه و بخشهای مهم سایت را آزمایش کنید.
اگر تصاویر آپلود میشوند اما بندانگشتیها ساخته نمیشوند چه کنیم؟
اگر فایل اصلی در کتابخانه رسانه دیده میشود اما اندازههای مختلف تصویر یا بندانگشتیها ساخته نمیشوند، مشکل بیشتر به پردازش رسانه مربوط است تا خود آپلود. از ابزارها → سلامت سایت → اطلاعات → مدیریت رسانه وضعیت ویرایشگر تصویر، فرمتهای پشتیبانیشده و محدودیتهای آپلود را بررسی کنید.
در این حالت ممکن است کتابخانه تصویری سرور، حافظه PHP، یک افزونه بهینهسازی تصویر یا محدودیت پردازش عامل مشکل باشد. گزارش خطای سرور معمولاً در تشخیص دقیقتر کمک میکند.
چه زمانی باید با پشتیبانی هاست تماس بگیریم؟
اگر همه موارد بالا را بررسی کردهاید و هنوز آپلود انجام نمیشود، ادامه تغییرات تصادفی روی فایلهای سرور معمولاً کار درستی نیست. در این شرایط به پشتیبانی هاست بگویید:
- چه فایل و چه حجمی را آپلود میکنید؛
- پیام خطای دقیق چیست؛
- آیا مشکل برای همه فایلها رخ میدهد یا فقط تصاویر خاص؛
- مقدار
upload_max_filesizeوpost_max_sizeچقدر است؛ - مجوز و مالکیت
wp-content/uploadsبررسی شود؛ - گزارش خطای PHP و وبسرور در زمان خطا بررسی شود.
اگر مشکل از محدودیت سرور، مالکیت فایلها، تنظیمات PHP یا ImageMagick باشد، هاست معمولاً سریعتر از آزمون و خطای دستی میتواند علت را پیدا کند.
جمعبندی
برای رفع مشکل آپلود نشدن تصاویر در وردپرس بهتر است از سادهترین موارد شروع کنید: حجم و نام فایل را بررسی کنید، دوباره وارد وردپرس شوید و از سلامت سایت محدودیتهای رسانه را ببینید. اگر خطای دسترسی دارید، مجوز و مالکیت پوشه uploads را بررسی کنید؛ در بسیاری از هاستها 755 برای پوشهها و 644 برای فایلها مقدار معمول است.
اگر با خطای HTTP روبهرو هستید، حافظه PHP، افزونهها، قالب، کش و نسخه PHP را بررسی کنید. کدهای ناشناخته را بدون تشخیص دقیق مشکل به .htaccess اضافه نکنید.
در نهایت اگر مشکل از سطح سرور باشد، بهترین کار این است که پیام خطا و زمان رخ دادن آن را به پشتیبانی هاست بدهید تا گزارش سرور، محدودیتهای PHP و مجوز فایلها را بررسی کند. این روش هم امنتر است و هم معمولاً سریعتر به علت واقعی میرسد.