چگونه خطاهای وردپرس را ردیابی کنیم؟

اینکه یک وب سایت وردپرسی بدون خطا باشد و هیچ اتفاقی برایش نیفتد خیلی خوشبینانه است، از طرفی انواع و اقسام افزونه و قالب برای وردپرس وجود دارد که خودش چالش بزرگی است، کافی است توسعه دهنده یک افزونه در قسمت هایی از برنامه اش مرتکب خطا شده باشد، همین مورد می تواند وب سایت تان را با مشکل مواجه کند.

یا در سناریویی دیگر می خواهید خطاهای پروژه تان را رفع و رجوع کنید، اینجاست که آشنایی با امکانات و قابلیت های خطایابی وردپرس و چگونگی رفع آنها به یک مهارت جدی تبدیل می شود. ما در این پست آموزشی می خواهیم به برخی از این امکانات اشاره کنیم، اما قبل از آن بهتر است با خطاهای معمول و رایج در PHP آشنا شوید.

انواع خطاهای زمان اجرا(Run Time) در PHP

۱- Notice Error یا خطای اطلاع

رایجترین نوع خطاست که در هنگام نوشتن یک برنامه یا اسکریپت رخ می دهد. به عنوان مثال اگر به متغیری که هنوز تعریف نشده است دسترسی پیدا کنید، پیغام خطای notice نشان داده خواهد شد.

<?php
    echo $myVariable;
    echo "Continue: Notice Error...";
?>

همانطور که مشاهده می کنید این نوع خطا مانع اجرای کامل برنامه نمی شود. با اینکه خط اول مشکل دارد اما خط دوم اجرا شده و پیغام موردنظر را چاپ کرده است.

۲- Warning Error یا خطای هشدار

از خطاهای Notice شدیدتر بوده و ممکن است در آینده مشکلات جدی ایجاد کنند. به عنوان مثال در کد زیر فایلی را فراخوانی کرده ایم که در مسیر موردنظر وجود ندارد. این نوع خطا مانع اجرای کامل برنامه نمی شود.

<?php
   include('myFile.php');
   echo "Continue: Warning Error...";
?>

خطای warning در وردپرس

۳- Fatal Error یا خطای وخیم

این نوع خطا بحرانی و خطرناک است و برنامه را به طور کامل متوقف می کند. برای بررسی این موضوع به تابعی دسترسی پیدا کردیم که هنوز تعریف نشده است.

<?php
  echo helloMessage();
  echo "Continue: Fatal Error...";
?>

همانطور که ملاحظه می کنید پیغام “Continue: Fatal Error” چاپ نشده است.

خطای fatal در وردپرس

۴- Parse/Syntax Error یا خطای نحوی

خطاهای نحوی زمانی رخ می دهند که در ساختار و سینتکس زبان PHP اشتباهی رخ داده باشد. به عنوان مثال در خطوط زیر پرانتز ( شرط if فراموش شده است.

<?php
   if(function_exists('helloMessage')
    {
      echo "Function is Exists...";
    }
   echo "Continue: Syntax Error...";
?>

در صورت وقوع خطای نحوی اجرای برنامه به طور کامل متوقف خواهد شد.

خطای Syntax Parse در وردپرس

خطایابی در وردپرس

پیدا کردن خطاهای PHP بخش جدایی ناپذیر و پیچیده هر پروژه است، با این حال وردپرس ابزارها و قابلیت هایی در اختیارمان قرار می دهد که این موضوع را تا حدودی آسان کرده است. در ادامه هر کدام از این امکانات را بررسی می کنیم:

۱- WP_DEBUG

فعال کردن دیباگینگ مد(Debug Mode) اولین کاری است که در شروع فرآیند خطایابی باید انجام دهید، برای اینکار ثابت WP_DEBUG را در فایل  wp-config.php جستجو کرده و مقدار آن را به true تغییر دهید.

define( 'WP_DEBUG' , true);

پس از اعمال این تغییر تمام خطاهای PHP که در بالا بررسی کردیم نشان داده خواهد شد. این تغییر همچنین توابع منسوخ شده یا deprecated را که در حال حاضر در وب سایت تان استفاده کرده اید را نیز گزارش می دهد.

۲- WP_DEBUG_LOG

ابزار بعدی WP_DEBUG_LOG است که پس از فعال سازی کلیه خطاهای برنامه را در فایل debug.log ذخیره می کند، این فایل در دایرکتوری wp-content قرار دارد. توجه داشته باشید که WP_DEBUG فعال شده باشد.

define( 'WP_DEBUG_LOG' , true);

فعال سازی دیباگینگ در وردپرس

اگر در وب سایت تان خطایی رخ ندهد این فایل ایجاد نخواهد شد.

۳- WP_DEBUG_DISPLAY

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

define( 'WP_DEBUG_DISPLAY', false );

نکته بسیار مهم

اگر می خواهید مد خطایی را در محیط Production یا Live فعال کنید، بدین صورت عمل نمائید:

// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );

// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );

// Disable display of errors and warnings 
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

حتما خطوط بالا را قبل از کامنت زیر در فایل wp-config.php قرار دهید.

/* That's all, stop editing! Happy blogging. */

افزونه WP Log Viewer

پس از فعال سازی مد خطایابی می توانید فایل لاگ را به کمک افزونه WP Log Viewer مشاهده کنید و دیگر نیازی نیست که به دایرکتوری wp-content مراجعه کنید.

افزونه wp log viewer

این افزونه در ابتدا بررسی می کند که آیا Debugging فعال است یا خیر. اگر فعال نباشد راهنمایی های لازم را ارائه می دهد. پس از آن کافی است بر روی گزینه Debug Log در قسمت ادمین بار کلیک کرده تا جزئیات خطاها نمایش داده شود.

خطایابی وردپرس

جمع بندی

فعال سازی دائمی Debugging می تواند بر روی عملکرد یک وب سایت تاثیرگذار باشد. بنابراین اگر در وب سایت تان خطایی رخ داد(مثلا صفحه سفید نشان داده شد و یا قسمتی از صفحه لود نگردید) بهتر است قابلیت خطایابی را به صورت موقت فعال کرده و پس از رفع خطا مجددا غیر فعال نمائید. فراموش نکنید که مقدار WP_DEBUG_DISPLAY را به false تغییر دهید.

نظرات و سوالات کاربران

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *