تقریبا میشه گفت که هیچ سیستم مدیریت محتوایی وجود نداره که برای همه کاربران با هر نوع سرور و سیستم عاملی به درستی کار بکنه و عاری از نقص باشه، چرا که بالا اومدن یک سایت به عوامل بسیار زیادی بستگی داره که به سخت افزار و نرم افزارهای نصب شده روی اون برمیگرده.
در وردپرس هم مثل این مورد رو به رو هستیم که به دلایل مختلف مثل تغییرات در php، فعال/غیرفعال شدن اکستنشنهای هاست و… مشکلاتی برای سایت به وجود میاد. بنابراین باید ابزاری برای عیب یابی کردن وردپرس وجود داشته باشه که هر گاه با خطا مواجه شدیم بتونیم این مشکلات را برطرف کنیم، اینجا بود که حالت دیباگ وردپرس به وجود اومد و با یک ابزاری که در قلب وردپرس قرار داره به راحتی میتونید با فعال سازی دیباگ وردپرس مشکلات را برطرف کنید.
در این آموزش قصد دارم به معرفی دیباگ وردپرس و نحوه فعال سازی دیباگ وردپرس بپردازم که با استفاده از این آموزش میتونید از ابزار دیباگ وردپرس استفاده کرده و مشکلاتی که در سایتتون وجود داره را یافته و برطرف کنید. پیش از این هم به معرفی افزونهای برای عیب یابی وردپرس و حل مشکل کندی سرعت در وردپرس پرداختم که بی ارتباط با همین دیباگ وردپرس نیست. پس اگر به دنبال رفع خطاهای وردپرس با استفاده از wp_debug هستید تا انتهای این مقاله همراه باشید.
حالت دیباگ وردپرس چیست؟
بیشتر کاربرانی که در حال توسعه و ایجاد تغییرات در کدنویسی افزونهها و قالب وردپرس هستند از ابزار دیباگ وردپرس غافل هستند و بخاطر همین موضوع خطاهایی که شاید در ظاهر در سایت نشون داده نشه رو نخواهند دید. اما همین خطاهایی که در ظاهر سایت تاثیری نمیزارن، باعث کندی سایت میشن که اگر حالت دیباگ وردپرس فعال باشه به راحتی میشه از این مشکلات مطلع شده و کدها را به صورت بهینه در وردپرس نوشت.
دیباگ وردپرس یا همون wp_debug بهترین ابزار برای عیب یابی در وردپرس و رفع مشکلات سایت هست که با استفاده از این ابزار میتونید منبع و سورسی که باعث خطا میشه را یافته و برطرف کنید. WP_DEBUG وردپرس یک ثابت از نوع بولین Boolean هست که داخل فایل wp-config.php تعریف میشه و با استفاده از این تابع میشه خطاهای موجود در سایت را مشاهده کرد.
این تابع میتونه از دو مقدار true و false پیروی بکنه که به ترتیب مربوط به فعال بودن یا غیرفعال بودن اون هستند. در صورتی که مقدار روی true قرار گرفته باشه دیباگ وردپرس فعال بوده و میتونید خطاهای وردپرس را بررسی کنید. اما اگر مقدار اون روی false باشه خطایی نمایش داده نمیشه. اما در همه موارد خطاهایی که نشون داده میشه واقعا یک خطا نیستند و در برخی موارد فقط توصیه هستند که به شما گفته میشه باید بررسیشون کنید.
نحوه فعال سازی دیباگ وردپرس و رفع خطاهای وردپرس
برای فعال کردن WP_DEBUG در وردپرس باید ابتدا وارد هاست خود شده و روی گزینه File Manager کلیک کنید تا به صفحه مدیریت فایلها در هاست هدایت بشید و سپس به مسیر public_html مراجعه کنید.
حالا که وارد مسیر نصب وردپرس در public_html شدید باید در این مسیر به دنبال فایل wp-config.php بگردید. بعد از پیدا کردن فایل روی اون راست کلیک کرده و گزینه EDIT را انتخاب کنید تا صفحه ویرایش فایل باز بشه. حالا با استفاده از کلیدهای ترکیبی CTRL + F داخل کدهای این فایل به دنبال WP_DEBUG بگردید.
اگر با جستجوی عبارت WP_DEBUG هیچ نتیجه ای پیدا نشد به این معنی که کر مربوط به فعال کردن دیباگ در وردپرس وجود نداره که باید به صورت دستی این کد را اضافه کنید. بنابراین کد زیر را درست قبل از خط /* That’s all, stop editing! Happy blogging. */ قرار داده و فایل را ذخیره کنید.
define( 'WP_DEBUG', true );
حالا همونطور که در بالا گفتم اگر دقت کنید در این تابع برای دیباگ وردپرس مقدار true قرار داده شده که به معنی فعال بودن حالت دیباگ وردپرس هست. اگر این مقدار به جای true روی false تنظیم بشه حالت دیباگ وردپرس غیرفعال شده و خطایی در سایت نمایش داده نخواهد شد. پس بعد از فعال کردن دیباگ وردپرس اقدام به رفع خطاهای وردپرس بکنید و بعد از اتمام رفع خطا هم حتما مقدار true را به false تغییر بدین.
دیباگ وردپرس فعال یا غیرفعال؟
از اونجایی که همیشه کدهایی که به صورت خطا یا توصیه در صورت فعال بودن دیباگ وردپرس نمایش داده میشن بنابراین در صورتی که خطا یا یادداشتی وجود نداشته باشه هیچ پیغام خطایی در صفحه نشون داده نمیشه. اما گاها پیش میاد که به دلیل آپدیت نرم افزارهای روی سرور و تغییراتی که اعمال میشه، ممکنه روی افزونه یا قالب وردپرس تاثیر بزاره و باعث نمایش دادن خطاهای وردپرس در بالای سایت بشه که دیدن چنین منظرهای برای کاربران حس بی اعتمادی خواهد داشت.
پس همیشه فقط و فقط از حالت دیباگ وردپرس وقتی استفاده کنید که در حال ایجاد تغییرات در کدنویسی سایت و توسعه وردپرس هستید. بعد از اینکه کارها تموم شد میتونید دیباگ وردپرس را غیرفعال کنید.
غیرفعال کردن نمایش خطا دیباگ وردپرس
یکی از قابلیتهایی که دیباگ وردپرس در اختیارتون قرار میده اینه که با استفاده از یک تابع دیگه که زیر مجموعهای از همین دیباگ وردپرس به حساب میاد و اسمشو WP_DEBUG_DISPLAY گذاشتند، میتونید خطاهای مربوط به فعال کردن دیباگ وردپرس را به صورت دلخواه انتخاب کنید که نمایش داده بشن یا اینکه نمایش داده نشن. برای این منظور باید این تابع را درست بعد از خطی که حالت دیباگ وردپرس را فعال کردید قرار بدین. دقت کنید که به صورت پیش فرض این حالت فعال هست و خطاها نمایش داده میشه، اما برای غیرفعال کردن نمایش خطاهای وردپرس در WP_DEBUG_DISPLAY باید کد زیر را بعد از خط دیباگ وردپرس قرار بدین.
define('WP_DEBUG_DISPLAY', false);
ایجاد لاگ خطا دیباگ وردپرس با WP_DEBUG_LOG
یکی دیگه از توابع زیر مجموعه دیباگ وردپرس به نام WP_DEBUG_LOG ایجاد شده که با استفاده از این تابع میتونید خطاهای دیباگ وردپرس را در یک فایل log ذخیره کنید که در هر بار که خطایی در سایت رخ میده، این خطاها به همراه مسیردهی که دارند در این فایل ذخیره شده و میتونید با بررسی خطاهای موجود در این فایل بر اساس بازه زمانی که برای هر خطا تاریخ و ساعت دقیق بروز خطا ثبت میشه بدونید که مشکل به وجود اومدن خطا در سایت مربوط به چه فایلی است. برای فعال کردن لاگ دیباگ وردپرس باید تابع زیر را هم بعد از قطعه کد مربوط به فعال سازی دیباگ وردپرس قرار بدین.
define('WP_DEBUG_LOG', true);
همونطور که میبینید در این قطعه کد هم مقدار true انتخاب شده که در این صورت فایلی با نام debug.log داخل پوشه wp-content در هاست شما ساخته میشه که هر زمان خطایی در وردپرس به وجود میاد بر اساس تاریخ و ساعت بروز خطا در هر خط از این فایل ذخیره میشه که با بررسی اون میتونید خطاهای وردپرس را برطرف کنید. اگر بخواهیم که هر سه تابع بالا را به صورت فعال شده در وردپرس استفاده کنیم به طوری که هم دیباگ وردپرس فعال بشه، هم خطاها در بخش کاربری سایت نشون داده نشه و هم اینکه خطاها در یک فایل لاگ ذخیره بشن باید از کدها به صورت ترکیب زیر استفاده کنیم.
// 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);