حل ۵ خطای معمولی که در وردپرس پیش میآیند
با اینکه وردپرس بسیار انعطافپذیر است و قابلیتهای بسیار زیاد و متنوعی دارد، که اینها باعث شده سایر «سیستمهای مدیریت محتوا» (CMS)، تقریبا از میدان رقابت خارج شوند، اما همچنان وبسایتهای وردپرسی مستعد اشتباهات و خطاهای گوناگونی هستند. اما آنچه که باعث خاص بودن وردپرس میشود این است که شما میتوانید بر روی کمک رایگان جامعه حساب کنید. «کدکس» (Codex) همراه با انجمنهای گفتگوی آزاد و میلیونها منبع دیگر که تقریبا هر جنبهای از وردپرس را پوشش میدهند، ما را مطمئن میسازند که هرگز تنها رها نخواهیم شد.
در این آموزش لیستی از خطاهای احتمالی و معمول وردپرس، علل، اثرات و راه حلهای آنها برای برنامهنویسان تازهکار معرفی شده است. پس هر وقت با یکی از خطاهای زیر روبرو شدید که در نگاه اول پایان جهان به نظر میرسند، نگران نباشید و بدانید که در عرض چند دقیقه میتوانید آن را حل کنید.
1. نمیتواند اطلاعات سر تیتر (Header) را اصلاح کند
خطا:
وقتی که شما وارد URL وبسایتتان میشوید، با پیغام زیر مواجه میشوید:
“Cannot modify header information – headers already sent by …”.
چرا این خطا رخ میدهد؟
این خطا به این معنی است که چیز دیگری قبل و بعد از کد اصلی هدر قابل پردازش است. در این مورد به احتمال زیاد، تعدادی کارکتر یا فاصله خراب، یا حتی یک قطعه کد، قبل یا بعد از تگهای بسته شدن و باز کردن در یک سند وردپرس قرار داده شده است.
راه حل:
دوباره نگاهی دقیقتر به پیغام خطا بیندازید. پیغام باید چیزی شبیه زیر باشد:
Warning: Cannot modify header information - headers already sent by (output started at /path/blog/wp-config.php:76) in
/path/blog/wp-login.php
on line 43
مسیر درون پرانتز و شماره انتهای آن، محل دقیق خطا را نشان میدهد. در این مثال، خطا در خط 76 wp-config.php
قرار دارد.
به مسیر نصب وردپرستان بروید و فایلی را که میگوید ‘already sent the header information.’ پیدا کنید. آن را در یک ویرایشگر متنی مثل ++Notepad باز کنید.
خط 76 را مرور کنید و کاراکترها، فاصلهها یا خطوط کد قبل از برچسبهای <?php and after >?
را پیدا کنید. این فایل را روی دسکتاپ کامپیوتر ذخیره کنید: نام آن را تغییر ندهید، اما ‘Encoding’ تا UTF-8 را تغییر دهید (شما یک باکس قبل از دکمه ‘Save’ میبینید) مجددا فایل را پس از این تغییرات با استفاده از FTP در جای اولیهاش در مسیر وردپرس بارگذاری کنید.
نکته: در آینده میتوانید با استفاده از تابع جاوااسکریپت (JavaScript) به جای wp_redirect()
برای بازیابی خود استفاده کنید.
2. صفحه سفید مرگ
خطا:
خطای صفحه سفید مرگ (White Screen Of Death) آنقدر رایج است که از سالها پیش به صورت مخفف شناخته میشود (WSOD). و هنوز هم وقتی که کسی با آن روبرو میشود، ضربان قلبش حسابی بالا میرود: یک صفحه کاملا سفید و خالی! اساسا هر بار که سعی میکنید صفحهای از وبسایت وردپرس خود را ببینید، (حتی محتوا یا مدیریت) یک صفحه بزرگ به صورت زیر را میبینید:
چرا این خطا رخ میدهد؟
معمولا این خطا به خاطر مسائل مربوط به سازگاری یک افزونه وردپرس و قالب آن رخ میدهد.
راه حل:
اگر هنوز میتوانید محتوا را ببینید، به داشبورد مدیریت خود وارد شوید و همه افزونهها را غیرفعال کنید. فقط آخرین ویرایش آنها را غیرفعال کنید. پس از آن دوباره URL سایت خود را ببینید.
اکنون یکی یکی افزونهها را فعال کنید. پس از فعال شدن هر افزونه، از نو وبسایت را در پنجره مرورگر ببینید. لحظهای که خطا دوباره ظاهر میشود، افزونه ی مسبب این خطا را یافتهاید. میتوانید برای رفع خطا با سازندگان افزونه و یا قالب تماس بگیرید تا در مورد خطا و رفع آن با آنها صحبت کنید.
اگر محتوای شما هم به خطر افتاده است، افزونهها را از طریق فایلهایشان غیرفعال کنید. به مسیر نصب وردپرس خود در FTP بروید و از آنجا به مسیر زیر بروید: wp-content/plugins
. دایرکتوری افزونهها را به هر چیزی دیگری تغییر نام دهید، تا غیرفعال شوند. با این روش قطعا بر خطای WSOD غلبه خواهید کرد. پس از آن میتوانید تمام فایلهای افزونهها را به کامپیوتر منتقل کنید. نام دایرکتوری wp-content/plugins
را بازیابی کنید و افزونهها را به صورت دستی، یک به یک بارگذاری کنید. همچنین قسمت نمایش سایت (یعنی پنجره مرورگر که وبسایت شما را نمایش میدهد) را در نظر داشته باشید. درست است که این کار خستهکننده است. اما شما باید آن را انجام دهید.
3. همه پستها به صورت “404 Not Found” نمایش داده میشوند.
خطا NOT FOUND 404 :
هر بار که پستهای خود را میبینید، پیام زیر را دریافت میکنید:
404 Not Found
سرور وب نمیتواند فایل یا سند مورد نظر شما را پیدا کند ... که این باعث ناراحتی شما میشود. زیرا شما در وبسایت خود پست منتشر کردهاید و سرور احمق (!) نمیتواند آن را پیدا کند.
چرا این خطا اتفاق میافتد؟
علل رایج شامل هر چیزی از لینکهای خراب به فایل خراب یا حذفشده .htaccess
است.
راه حل:
بیایید با یک راه حل ساده و روشن شروع کنیم:
به بخش مدیریت وردپرس خود بروید: admin >> Settings >> Permalinks
تنظیمات دیگری را انتخاب کنید. آن را ذخیره کنید و دوباره به تنظیمات قبلی خود برگردید. اکنون دوباره از پستهایتان بازدید کنید. میبینید که با روش بالا ..htaccess
اصلاح شده است.
اما اگر هنوز هم نمیتوانید پستهایتان را ببینید، باید به صورت دستی .htaccess
را اصلاح کنید. به همین منظور سرویس FTP خود را باز کنید و دایرکتوری وردپرس را در دسترس قرار دهید. به جستجوی فایلی در همان دایرکتوری با عنوان /wp-includes
بپردازید. اکنون این بیت را به فایل .htaccess
خود اضافه کنید:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
گاهی اوقات این خطا فقط نتیجه یک URL معیوب است. پس قبل از هر حدس و گمانی، پستهایتان را در چند مرورگر مختلف بررسی کنید.
4. خطای سرور داخلی HTTP500
خطا:
شما پیامی شبیه پیام زیر دریافت میکنید:
Internal Server Error
ظاهرا سرور با یک خطای داخلی مواجه شده و نتوانسته درخواست شما را تکمیل کند.
چرا این خطا اتفاق میافتد؟
این خطای خاص ( و راه حل آن) به همه وبسایتهای اینترنتی اعمال میشود. این خطا هم میتواند به دلیل خراب شدن ..htaccess
و یا فایلهای هسته وردپرس، ناسازگاری بین افزونهها یا تمها، استفاده بیش از حد مجاز از حافظه و ... باشد.
راه حل:
.htaccess
: از آنجا که شایعترین دلیل این خطا مجموعه دستورات.htaccess
است، شما میتوانید یک شرط امن ایجاد کنید. نگران نباشید: فایل را پیدا کنید. همانطور که در راه حل بخش 3 آمده است. و آن را از دیرکتوری کات (cut) کنید. پس از انجام این کار به وبسایت خود مراجعه کنید تا ببینید آیا مشکل حل شده است؟ اگر مشکل حل شده به مسیر Admin >> Settings >> Permalinks بروید و تنظیمات را از نو تنظیم کنید تا به طور خودکار یک فایل.htaccess
جدید تولید کند.- ناسازگاری افزونه با قالب سایت: یکی دیگر از دلایل شایع دیگر این خطا ناسازگاری افزونهها با قالب سایت است. تمام افزونهها را غیرفعال کنید و یک یک آنها را فعال کنید (همانطور که در بخش 2 و راه حل آن آمده است). اگر هیچ کدام از افزونهها مسئول این خطا نبود، تم را به تم پیشفرض تغییر دهید.
- از تمام حافظه مجاز استفاده شده است: این نیز یکی دیگر از دلایل خطای داخلی سرور است. میزان حافظه PHP را افزایش دهید.
- هسته وردپرس: فایلهای خراب هسته وردپرس را میتوان به سادگی با بارگذاری مجدد وردپرس، اصلاح کرد. به نشانی WordPress.org بروید و آخرین نسخه وردپرس را دانلود کنید و آن را نصب کنید.
5. زمان اجرا
خطا:
“Fatal Error: Maximum execution time of 30 seconds exceeded in /file-path.php on line 538.”
چرا این خطا رخ میدهد؟
سرور یا سند مورد نظر برای پاسخ دادن یا پردازش بیش از حد زمان میبرد. معمولا زمان اجرای پیشفرض 30 ثانیه است. اما ممکن است بسته به ارائهدهنده خدمات میزبانی متفاوت باشد.
راه حل:
ابتدا فایل پشتیبانی از تمام محتوای سایت و پایگاه داده خود داشته باشید. اکنون سه راه حل برای این مشکل وجود دارد:
1. htaccess: کد زیر را به این فایل اضافه کنید تا زمان اجرا به 60 ثانیه افزایش یابد.
php_value max_execution_time 60
2. php.ini: ممکن است لازم باشد تا از ارائهدهنده میزبانی خود اجازهی دسترسی به این فایل را بخواهید. موارد زیر را به این فایل اضافه کنید:
max_execution_time = 60
3. افزونه: افزونه WP Maximum Execution Time Exceeded به شما کمک میکند تا زمان اجرا را تنها به 60 ثانیه افزایش دهید.
نکات نهایی
رفع خطا های عنوان شده اصلا سخت نبود. اگر شما برنامهنویس نیستید، تنها مانع بزرگ در برابر حل خطاهای بالا، ترس ذهنی شما از روبرو شدن با عباراتی مثل "خط کد" (Code-like) یا "مبتنی بر سرور" (server- based) است. اگر بر این ترس ذهنی غلبه کنید، خواهید دید که به راحتی میتوانید بسیاری از این خطاهای وردپرس را خودتان به راحتی حل کنید.
اگر به مطالعه بیشتر در زمینه وردپرس علاقهمند هستید، آموزشهای زیر برای شما مفید به نظر میرسند:
- مجموعه آموزشهای راهاندازی سایت و کار با وردپرس -- مقدماتی
- مجموعه آموزشهای راه اندازی سایت و کار با وردپرس -- تکمیلی
- آموزش تبدیل قالب HTML به قالب وردپرس
- آموزش راهاندازی سیستم عضویت ویژه در وردپرس
::.
خدا خیرت بده