یکی دیگر از مشکلاتی که در وردپرس می تواند گریبانگیر شما شود، مشکل صفحه سفید یا همان صفحه مرگ (Death Page) می باشد. مشکلی که نه خطایی را مشاهده می کنید نه محتوای سایتتان را! تنها یک صفحه سفید خالی! اما این مشکل هم مانند تمامی مشکلات دیگر، یک راه حل دارد.
دلایل بروز این مشکل:
- اتمام محدودیت مصرف مموری سرور ( Memory Limit )
- استفاده از توابع نادرست در افزونه ها یا قالب ها یا منقضی شدن توابع استفاده شده در نسخه های جدیدتر PHP
- مشکل از هاست و سرور
- و… !
سایت معمولی یا سایت شبکه ای؟
یکی از راه هایی که به حل این مشکل می تواند کمک کند این است که اگر وردپرس شما چند سایته (شبکه) است، بررسی کنید که مشکل صفحه سفید در تمامی سایت های ساخته شده وجود دارد یا تنها در یک سایت؟
اگر مشکل سفید بودن صفحه در تمامی سایت های یک شبکه وجود داشت، به حتم می توان گفت مشکل از سمت هاستینگ شماست! البته در شرایطی که یک افزونه یا قالب در تمامی سایت های شبکه فعال باشد، آن افزونه یا قالب نیز می تواند باعث بروز چنین مشکلی شود. اما اگر مشکل سفید شدن صفحه در یکی از سایت های شبکه وجود داشت، مشکل از سمت افزونه یا قالب درحال استفاده در آن سایت است.
افزایش میزان محدودیت مموری سایت
اولین راه حل این است که میزان مموری ( Memory ) مربوط به سایت را افزایش دهیم.
بهترین مکان برای افزایش این مقدار، فایل php.ini
است که تعداد زیادی از هاستینگ ها، این فایل را در اختیار شما قرار نمی دهند. اما اگر یک سرور اختصاصی داشته باشید، یا اینکه به کنترل پنل WHM دسترسی داشته باشید، به راحتی می توانید مقدار رم را از طریق فایل php.ini
افزایش دهید. اما اگر یک هاست اشتراکی دارید و این فایل را مشاهده نمی کنید، بهترین راه برای شما اضافه کردن کد زیر به فایل wp-config.php
واقع در مسیر نصب وردپرس می باشد:
define( 'WP_MEMORY_LIMIT', '256M' );
غیرفعال کردن افزونه ها
اگر با افزایش میزان مموری سایت، مشکل رفع نشد، بهتر است به سراغ افزونه ها برویم.
برای اینکار وارد فایل منیجر هاست شده و در پوشه wp-content
، نام پوشه plugins
را به plugins0
تغییر دهید! تفاوتی ندارد نام این پوشه را به چه چیزی تغییر می دهید، مهم این است که با این تغییر نام، افزونه ها در سایت غیرفعال می شود.
پس از غیرفعال کردن افزونه ها، سایت را بررسی کنید. اگر مشکل رفع شده بود، پس یکی از افزونه ها باعث دردسر شما شده! در اینصورت در بیاد بیاورید که پیش از بروز این مشکل، چه افزونه ای را نصب یا بروز رسانی کرده اید و آن را حذف کنید. اگر افزونه ضروری است و برای کارایی قالب واجب است، می توانید از نسخه های قبلی آن افزونه استفاده کنید.
یا اینکه از افزونه های مشابه آن استفاده کنید.
تغییر قالب سایت از طریق PHPmyAdmin
اگر با انجام مرحله قبلی هم مشکل رفع نشد، به سراغ تغییر قالب می رویم. تغییر دادن قالب بدون دسترسی به پیشخوان کمی دشوار است، اما شدنی! برای اینکار ما یک قالب جایگزین نیاز داریم که قالب های پیش فرض و پکیج شده همراه با فایل وردپرس، بهترین قالب برای آزمایش است. زیرا در کدنویسی آن استانداردها رعایت شده و امکان بروز مشکل در این قالب ها وجود ندارد.
روش انجام کار:
اگر قالب پیش فرض ندارید، آن را از مخزن وردپرس دریافت و در پوشه themes واقع در wp-content بارگذاری کنید.
وارد phpmyadmin
هاست خود شده و دیتابیس مربوط به سایتتان را پیدا کنید. اکنون جدول wp_options
را باز کنید.
مقادیر template
و stylesheet
و current_theme
را به نام قالب پیش فرض یعنی twentyeleven
تغییر دهید و ذخیره کنید. (البته دقت داشته باشید اگر از قالب دیگری استفاده کردید، در قسمت این سه ردیف باید نام قالب خود را وارد کنید.)
پس از انجام اینکار (تغییرقالب) ، اگر سایتتان باز شد، مشکل از قالب و کدهای داخل functions.php
آن است. اما اگر مشکل همچنان باقی بود، به مرحله بعدی بروید.
فعالسازی حالت رفع عیب وردپرس
اگر تاکنون نتوانستید مشکل را حل کنید، بهتر است حالت رفع عیب (Debug) وردپرس را فعال کنیم تا ببینیم مشکل از کجاست. برای اینکار شما باید کد زیر را در فایل wp-config.php
وردپرستان اضافه کنید. لطفا دقت داشته باشید که کد خط 2 از قبل در این فایل وجود دارد، تنها باید مقدار آنرا از false
به true
تغییر دهید. و خط 1 کد زیر را در صورتی که در فایل wp-config.php
وجود نداشت، اضافه نمایید.
error_reporting(E_ALL); ini_set('display_errors', 1); define( 'WP_DEBUG', true);
بعد از ذخیره فایل و انجام تغییرات، سایت خود را باز کنید. به احتمال زیاد اکنون باید خطاهایی در سایت خود مشاهده کنید که می توانید بفهمید مشکل از کجاست. پس از دریافت خطاها، متن آنها را در گوگل جستجو کنید تا بتوانید نحوه رفع آنها را بفهمید!
صفحه سفید وردپرس تنها در ادامه مطالب طولانی
گاهی اوقات هم پیش می آید که تنها در ادامه مطلب هایی که متن توضیحات طولانی دارند، صفحه سفید مشاهده می شود. این به دلیل کم بودن مقدار منابع مربوط به Post
در سرور شماست.
اگر به WHM دسترسی دارید یا سایتتان در یک سرور اختصاصی بنا شده، کد زیر را در فایل php.ini
خود قرار دهید.
ini_set('pcre.recursion_limit',20000000); ini_set('pcre.backtrack_limit',10000000);
و اگر از هاست اشتراکی استفاده می کنید و به این فایل دسترسی ندارید، از هاستینگ خود بخواهید اینکار را برایتان انجام دهد.
تغییر نسخه PHP هاست
البته خالی از لطف نیست که بگوییم که نسخه PHP فعال در هاست نیز می تواند باعث بروز چنین مشکلی شود. همانطور که می دانید برخی از توابع عمومی PHP ممکن است به مرور زمان منقضی شوند. اگر افزونه یا قالب شما قدیمی باشد ممکن است در نسخه های جدیدتر PHP به خوبی عمل نکند و باعث بروز این مشکل شود.
ابتدا در بخش مستندات افزونه یا قالبی که جدیدا نصب یا بروزرسانی کرده اید، مطالعه کنید که آن را در چه نسخه ای آزمایش کرده اند. سپس در پنل هاست خود، نسخه PHP را تغییر دهید.
امروزه در اکثر پنل های هاست، شما به راحتی امکان تغییر نسخه PHP را دارید. ممکن است نسخه PHP شما بالا باشد و برخی از توابع استفاده شده مربوط به نسخه های قبل تر باشند، یا اینکه نسخه PHP ما کم بوده و توابع استفاده شده در نسخه های قبلی پشتیبانی نمی شود!
شما می توانید با توجه این مستند از مارکت دِومی، در صورتی که چنین مشکلی را رفع کرده اید، در بخش دیدگاه ها اعلام کنید مشکلتان را از چه روشی رفع کردید. ممکن است به دیگران کمک کند!