تصور کنید که بعد از گذراندن تعطیلات آخر هفته، فردای آن روز در محل کار یا خانه خود که برای شروع فعالیت در هفته جدید آماده کار میشوید، بعد از باز کردن سایت با خطاهایی عجیب و قریب مشابه تصویر زیر مواجه میشوید.
متنهایی به زبان انگلیسی در بالا یا انتهای صفحه قرار دارند که آدرسدهی به مسیر دایرکتوری هاست شما در آن به چشم میخورد. اینجاست که سریعا دست به کار شده و به دنبال عیب یابی در وردپرس هستید.
وردپرس برای چنین زمانهایی حالتی با نام WP_DEBUG یا همان دیباگ وردپرس را دارد. این قابلیت را با عنوان سیستم عیب یابی وردپرس میشناسیم. چرا که با فعال سازی دیباگ وردپرس میتوانید منبع خطا را پیدا کرده و برای رفع آن از راهنمایی که در خود دیباگ وردپرس وجود دارد کمک بگیرید. در این مقاله به نحوه فعال کردن دیباگ وردپرس میپردازیم.
دیباگ وردپرس(WP_DEBUG) چیست و چه کاربردی دارد؟
یک سایت وردپرسی در حالت عادی که همه امکانات مورد نیاز در آن وجود داشته باشد، حداقل 10 افزونه فعال را در خود دارد. هر یک از این افزونهها به شکل خاصی کدنویسی شدهاند و از منابع هاست شما استفاده میکنند. هسته وردپرس، قالب وردپرس، افزونههای وردپرس و از همه مهمتر نرمافزارهای روی سرور مدام در حال آپدیت شدن هستند.
همین تغییرات باعث میشود تا به دلیل ساختار متفاوت در کدنویسی یا نیاز به یک سری موارد مورد نیاز، هر یک از موارد ذکر شده دچار مشکل شده یا با دیگری اختلال پیدا کند. در این حالت سایت به درستی کار نکرده و لازم است تا ساختار برنامهنویسی را بررسی کنید.
در این صورت به هر دری میزنیم تا پیش از هر چیز عیب یابی در وردپرس را آغاز کنیم. اما از آنجایی که ما عالم غیب نیستیم و با نبود راهنما دشوار است تا منبع مشکل را پیدا کنیم، به همین جهت وردپرس قابلیتی را با نام حالت دیباگ وردپرس در خود جای داده است تا با فعال کردن آن بتوانید منبع مشکل را ببینید.
دیباگ وردپرس چیزی نیست که از خود وردپرس آن را فعال یا غیرفعال کنید، بلکه باید قطعه کدی را در فایل کانفیگ وردپرس(wp-config.php) که در روت هاست(public_html) قرار دارد اضافه کرده و با مقدار true یا false به ترتیب آن را فعال یا غیرفعال کنید.
نحوه فعال سازی دیباگ وردپرس(wp_debug)
برای فعال سازی دیباگ وردپرس ابتدا وارد هاست خود شوید. سپس مشابه تصویر زیر روی گزینه File Manager کلیک کنید. در صورتی که از هاست plesk یا direct admin هم استفاده میکنید نیز باید به همین شکل عمل کرده و به بخش مدیریت فایلها در هاست مراجعه کنید.
حال به مسیر روت هاست یا همان public_html مراجعه کرده و به دنبال فایلی با نام wp-config.php بگردید. بسته به کنترل پنل هاست خود باید از ابزار ویرایش فایل برای اضافه کردن کد استفاده کنید. در هاست سیپنل برای این منظور روی فایل کلیک کرده و سپس گزینه EDIT را انتخاب کنید.
در این صورت مشابه تصویر زیر صفحه ویرایش فایل باز میشود. در این مرحله باید به کمک دکمههای ctrl + F صفحه کلید خود به دنبال کلمه WP_DEBUG بگردید. در این صورت قطعه کدی مانند یکی از دو نمونه زیر را مشاهده میکنید.
1 2 |
define( 'WP_DEBUG', false ); define( 'WP_DEBUG', true ); |
همانطور که میبینید مقدار این دو قطعه کد روی false و true قرار دارند.
- False: اگر این مقدار تنظیم شده باشد دیباگ وردپرس غیرفعال است که برای فعال سازی باید به جای آن true را قرار دهید.
- True: اگر این مقدار تنظیم شده باشد دیباگ وردپرس فعال است که برای غیرفعال سازی باید به جای آن false را قرار دهید.
نکته: اگر هیچ یک از وضعیتهای فعال یا غیرفعال دیباگ وردپرس در فایل شما وجود نداشت کافی است یکی از کدهای فوق را درست بالای خط /* That’s all, stop editing! Happy blogging. */ در فایل wp-config.php قرار دهید.
پس از ذخیره کردن فایل غیرفعال یا فعال کردن دیباگ وردپرس تعیین خواهد شد.
ذخیره کردن خطاهای دیباگ وردپرس در یک log
از آنجایی که پیشنهاد میشود دیباگ وردپرس را فقط زمانی که سایت با خطا مواجه است یا اینکه در حال ایجاد تغییرات در کدنویسی هستید روی حالت فعال بگذارید، بهتر است برای ذخیره کردن خطاها در یک مسیر جدا از قابلیت log این تابع استفاده کنید.
با استفاده از این کار میتوانید خطاهای رخ داده شده در دیباگ وردپرس را در یک فایل ذخیره کنید تا اگر زمانی به آن نیاز داشتید فایل را بررسی کنید.
برای این منظور کافی است قطعه کد زیر را در فایل wp-config.php ذخیره کنید.
1 |
define('WP_DEBUG_LOG', true); |
در این صورت فایلی با نام debug.log در پوشه wp-content ساخته میشود که با هر بار به وجود آمدن خطا در وردپرس، در این فایل اطلاعات ذخیره میشود که به کمک این فایل لاگ میتوانید اقدام به عیب یابی در وردپرس کنید.
غیرفعال کردن نمایش خطاهای سایت به کاربران
از آنجایی که خطاهای وردپرس به کلیه بازدیدکنندگان نمایش داده میشود و چهره مناسبی برای سایت در حالتی که دیباگ وردپرس فعال باشد نخواهد داشت، پیشنهاد میکنیم حالت نمایشی را صرفا محدود به مدیریت خود کنید. برای این منظور کد زیر را هم میتوانید به خط بعد از دیباگ وردپرس در فایل wp-config.php قرار دهید.
1 |
define('WP_DEBUG_DISPLAY', false); |
در این صورت هر زمان که خطایی در وردپرس رخ دهد، صرفا خود شما که مدیر سایت هستید خطوطی که خطاها را توضیح میدهند را مشاهده خواهید کرد.
پس در حالت کلی اگر بخواهیم از هر سه تابع که برای مدیریت دیباگ وردپرس در بالا معرفی شد استفاده کنیم، میتوان از سه خط زیر در فایل کانفیگ وردپرس استفاده کرد.
1 2 3 4 5 6 |
// Turning on WP_DBUG define('WP_DEBUG', true); // Tell WordPress to log everything to /wp-content/debug.log define('WP_DEBUG_LOG', true); // Turning off the display of error messages on your site define('WP_DEBUG_DISPLAY', false); |
جالب بود ! سپاس از اطلاعات تان !