
چه شما یک کاربر وردپرسی باشید و چه یک توسعه دهنده وردپرس، آشنایی با WP_DEBUG کمک قابل توجهی به بهبود تجربه ی شما در کار با وردپرس خواهد کرد. البته بدون شک اهمیت استفاده از WP_DEBUG برای توسعه دهندگان وردپرس بسیار بالاتر از سایر گروه های کاربران این سیستم است. ناحیه ی Codex وردپرس، به شکل ویژه ای به توسعه دهندگان توسیه میکند که در هنگام کار کردن روی کد های خود، حتما حالت WP_DEBUG را فعال نمایند.
اما خوب متاسفانه بسیاری از توسعه دهندگان اصلا از این توصیه پیروی نمیکنند و این ابزار قدرتمند را که از پیش در وردپرس جاسازی شده، به طور کامل به فراموشی میسپارند.
هدف ما از نوشتن این مقاله این است که به شما نشان دهیم چگونه میتوانید به بهترین شکل WP_DEBUG را مورد استفاده قرار داده و رفتار آن را مطابق نیازهای خود تغییر دهید. با ما همراه باشید.
دیباگ کردن با WP_DEBUG
مهم ترین ابزار رفع اشکال که لازم است در وردپرس با آن آشنا باشید همین WP_DEBUG است. WP_DEBUG یک ثابت از نوع بولین (Boolean) است که در فایل wp-config.php تعریف میشود. در حالتی که مقدار این ثابت برابر true باشد، شما قادر خواهید بود در وبسایت وردپرسی خود، کلیه ی هشدار های PHP، پیام های رفع خطایی که توسط وردپرس تولید میشوند و خصوصا توابعی که ممکن است در کد خود استفاده کرده باشید و استفاده از آنها دیگر منسوخ شده باشد را مشاهده نمایید. در واقع اینها ارور نیستند ولی به شما در توسعه ی صحیح کدتان و بهینه سازی آن کمک خواهند کرد.
منظورمان از گفتن کلمه “توابعی که استفاده از آنها دیگر منسوخ شده باشد” این نیست که تابع دیگر وجود ندارد. منظور در واقع این است که این توابع قرار است در تاریخ مشخصی در آینده به طور کلی حذف شوند که البته به آنها توابع Deprecated نیز میگوییم. اهمیت آگاهی از این توابع این است که در صورتی که شما این توابع را در پوسته یا پلاگین های خود مورد استفاده قرار دهید، ممکن است در ریلیز های بعدی وردپرس، پلاگین یا پوسته ی شما دیگر به شکلی که انتظار دارید کار نکنند و یا اصلا کار نکنند! بنابراین بهتر است که جایگزین مناسبی برای این توابع بیابید و آنها را در کد خود به کار ببرید.
برای فعال کردن WP_DEBUG در صورتی که خط زیر از پیش در فایل wp-config.php شما وجود ندارد، کافی است آن را به این فایل اضافه نمایید :
1 2 3 | define( 'WP_DEBUG', true ); define( 'WP_DEBUG', true ); |
و برای غیر فعال کردن آن نیز کافی است بجای عبارت true، عبارت false را جایگزین نمایید. WP_DEBUG به صورت پیش فرض غیر فعال است.
همیشه به خاطر داشته باشید که WP_DEBUG را فقط روی سایت های آزمایشی و در زمان توسعه کد استفاده میکنیم و نباید آن را روی یک سایت زنده مورد استفاده قرار داد. چرا که میتواند اطلاعات مهمی را در مورد کد شما در اختیار بیننده قرار دهد و از طرفی هم ممکن است شکل و شمایل سایت شما را به طور کلی بهم بریزد.
ایجاد لاگ خطا ها با استفاده از WP_DEBUG_LOG
ابزار کاربردی دیگری که میتوانید در کنار WP_DEBUG از آن بهره بگیرید، WP_DEBUG_LOG است. با این کار یک فایل به نام debug.log در فولدر wp-content شما ساخته میشود که لیست کلیه ی خطا ها را در خود نگهداری میکند.
بیشترین کاربرد این مسئله در زمانی است که شما بخواهید هشدار ها و خطاهای موجود را بعدا مورد بررسی قرار دهید. برای فعال کردن این امکان کافی است کد زیر را به wp-config.php خود اضافه نمایید :
1 2 3 | define('WP_DEBUG_LOG', true); define('WP_DEBUG_LOG', true); |
جلوگیری از نمایش خطا ها در وبسایت با استفاده از WP_DEBUG_DISPLAY
اگر میخواهید در هنگام استفاده از WP_DEBUG، خطا ها در وبسایت شما به نمایش در نیایند، کافی است از WP_DEBUG_DISPLAY استفاده کنید.
توجه داشته باشید که WP_DEBUG_DISPLAY حتما باید در کنار فعال بودن WP_DEBUG_LOG به کار گرفته شود. WP_DEBUG_DISPLAY به صورت پیشفرض فعال است و برای غیر فعال کردن آن کافی است کد زیر را به wp-config.php خود اضافه کنید.
1 2 3 | define('WP_DEBUG_DISPLAY', false); define('WP_DEBUG_DISPLAY', false); |
و جمع بندی پایانی
حالا اگر بخواهیم از ترکیب هر سه ثابتی که در اینجا درباره شان صحبت کردیم استفاده کنیم، کافی است کد زیر را در wp-config.php قرار دهیم :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // Turn debugging on define('WP_DEBUG', true); // Tell WordPress to log everything to /wp-content/debug.log define('WP_DEBUG_LOG', true); // Turn off the display of error messages on your site define('WP_DEBUG_DISPLAY', false); // For good measure, you can also add the follow code, which will hide errors from being displayed on-screen @ini_set('display_errors', 0); // Turn debugging on define('WP_DEBUG', true); // Tell WordPress to log everything to /wp-content/debug.log define('WP_DEBUG_LOG', true); // Turn off the display of error messages on your site define('WP_DEBUG_DISPLAY', false); // For good measure, you can also add the follow code, which will hide errors from being displayed on-screen @ini_set('display_errors', 0); |
نوشتن خط پایانی الزامی نیست و صرفا برای حصول اطمینان از نتیجه کار است و البته اگر هاست شما تابع ini_set را بسته باشد؛ اصلا نمیتوانید از آن استفاده کنید.
فراموش نکنید که استفاده از WP_DEBUG مربوط به محیط لوکال است و استفاده از آن در یک وبسایت اصلی شما که بازدیدکننده ها به آن دسترسی دارند اصلا صحیح نیست.