دیباگ وردپرس یکی از مهمترین ابزارهایی است که هر مدیر سایت یا توسعهدهنده باید به آن مسلط باشد. زمانی که پس از نصب یک افزونه، تغییر قالب یا بهروز رسانی هسته وردپرس با خطاهای عجیب، سفید شدن صفحه یا افت عملکرد سایت مواجه میشوید، حدس زدن منشأ مشکل تقریباً غیرممکن است. اینجاست که حالت دیباگ وردپرس وارد عمل میشود.
در این راهنما، بهصورت کامل به آموزش فعالسازی حالت دیباگ وردپرس، نحوه مدیریت نمایش خطاها، ذخیره گزارشها در فایل لاگ و تنظیمات پیشرفته مانند دیباگ اسکریپتها و کوئریها میپردازیم تا بتوانید فرآیند عیبیابی سایت خود را حرفهای و کنترلشده انجام دهید.
سرفصلهای این مقاله:

فعالسازی دیباگ در محیط توسعه یا سایت اصلی؟
یکی از اشتباهات رایج هنگام استفاده از دیباگ وردپرس، فعال نگه داشتن آن روی سایت اصلی (Live) است. در حالی که بهترین و حرفهایترین روش، فعالسازی حالت دیباگ وردپرس در محیط توسعه (Local) یا استیجینگ (Staging) است.
در محیط توسعه، نمایش خطاها هیچ تأثیری بر تجربه کاربران ندارد و میتوانید با خیال راحت مشکلات کدنویسی، ناسازگاری افزونهها یا خطاهای دیتابیس را بررسی کنید. اما در سایت لایو، نمایش مستقیم ارورها میتواند ظاهر سایت را مخدوش کند، اطلاعات فنی حساس را افشا کند و حتی اعتماد کاربران را کاهش دهد.
بنابراین توصیه میشود:
- برای عیبیابیهای جدی، ابتدا یک نسخه استیجینگ ایجاد کنید.
- در صورت نیاز به فعالسازی دیباگ در سایت اصلی، نمایش خطاها را غیرفعال و فقط ذخیره در فایل لاگ را فعال کنید.
- پس از پایان بررسی، تنظیمات دیباگ را فوراً غیرفعال نمایید.

کافیست که این ویژگی را فعال کنید تا وردپرس، دقیقاً نام فایل و خطی که سایت را دچار مشکل کردهاست را به شما نشان دهد. همچنین یکی دیگر از کاربردهای دیباگ وردپرس، نمایش خطاها یا ارورهای احتمالی سایت است.
به صورت خلاصه، وردپرس قابلیتهای زیادی دارد و بسیار انعطاف پذیر است! در مقالۀ وردپرس چیست، به قابلیتهای کلیدی وردپرس پرداختیم که میتوانید مطالعه کنید.
مزایای فعال سازی حالت دیباگ وردپرس
- تمام خطاهای PHP، MySQL و هشدارها را نمایش میدهد.
- کمک میکند تا مشکلات پنهان را پیدا کنید.
- مشکلات را به طور دقیق تعیین میکند.
- امکان تشخیص خطاهای کد نویسی یا پلاگینها را فراهم میکند.
- خطاها را در فایل log ذخیره میکند.
- امکان بررسی گزارشات خطا در زمانهای بعدی.
- خطاها فقط برای مدیران سایت نمایش داده میشوند.
- اطمینان میدهد که تجربه کاربران نهایی تحت تأثیر قرار نگیرد.
- امکان شناسایی مشکلات پلاگینها یا تمهای نصب شده.
- کمک میکند تا بفهمید کدام پلاگین یا تم باعث مشکل شده است.
- مشکلات مرتبط با عملکرد سایت را شناسایی میکند.
- امکان پیدا کردن کدهایی که منجر به کاهش سرعت میشوند.
- امکان غیرفعال کردن تمام پلاگینها برای شناسایی مشکل.
- کمک میکند تا متوجه شوید کدام پلاگین باعث مشکل شده است.
- اخطارهای مرتبط با توابع پیرامونی (Deprecated Functions) را نمایش میدهد.
- کمک میکند تا کدها را به روز نگهداری کنید.
- اطلاعات دقیق خطا را برای توسعهدهندگان فراهم میکند.
- کمک میکند تا پشتیبانیها سریعتر انجام شود.
- امکان فعالسازی یا غیرفعالسازی دیباگ برای بخشهای مختلف سایت.
- کنترل کامل بر روی نوع خطاها و گزارشات.

راهنما و آموزش فعالسازی حالت دیباگ وردپرس
برای اینکه حالت دیباگ وردپرس را فعال کنید، کافیست به فایل منیجر هاست خود بروید و سپس فایل wp-config.php را ویرایش کنید.

در انتهای فایل، به صورت پیشفرض کدهای فعالسازی این حالت وجود دارد! اما اگر وجود نداشت، میتوانید از کدهای زیر استفاده کنید تا حالت دیباگ وردپرس فعال شود.
// 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', true ); 
با ثابت define(‘WP_DEBUG’, true); فقط حالت دیباگ فعال میشود و ممکن است ارورهای سایت برای شما نمایش داده نشوند. اگر میخواهید ارورها و خطاهای احتمالی هم نمایش داده شوند، نیاز است ثابت define(‘WP_DEBUG_DISPLAY’, true); را قرار دهید.

عبارت true در ثابتها، به معنی فعال کردن آن است. مثلاً اگر به جای true از false استفاده کنید، آن ویژگی غیرفعال میشود. زمانی که ثابتها به صورت true باشند به معنای فعال شدن آنهاست.
غیرفعال کردن نمایش خطای دیباگ وردپرس
برای غیرفعال کردن نمایش پیام و خطاهای دیباگ وردپرس، کافیست ثابت WP_DEBUG_DISPLAY را false کنید. به عنوان نمونه: اگر نمیخواهید ارورها در سایت نمایش داده شوند، باید از ثابت بدین شکل define(‘WP_DEBUG_DISPLAY’, false); استفاده کنید.
define( 'WP_DEBUG', false ); کاربرد WP_DEBUG_LOG فایل لاگ وردپرس
اگر میخواهید خطاها و پیامهای ارور ذخیره شوند، نیاز است که از ثابت WP_DEBUG_LOG استفاده کنید. با استفاده از این ثابت، خطاها و ارورها در مسیر wp-content/debug.log وردپرس شما ذخیره میشوند.
فقط توجه داشته باشید که اگر این ویژگی را برای مدت طولانی فعال نگه دارید، حجم فایل debug.log بسیار افزایش مییابد و موجب اشغال شدن فضای هاست شما میگردد.

ضمناً ناگفته نماند که به صورت پیشفرض، خطاهای وردپرس در فایل error_log هم ذخیره میشوند و از طریق این فایل هم میتوان به مشکلات برخی از پلاگینها و قالب سایت دست پیدا کرد.
فعال کردن حالت دیباگ وردپرس برای اسکریپتها
در صورتی که نیاز دارید برای فایلهای JS و CSS هم حالت دیباگ وردپرس عمل کند، کافیه ثابت define( ‘SCRIPT_DEBUG’, true ); در فایل wp-config.php قرار دهید. اگر در کدنویسی فایلهای جاوا اسکریپت و سیاساس مشکلی وجود داشته باشد، در کنسول مرورگر و لاگ وردپرس ثبت خواهد شد.
define( 'SCRIPT_DEBUG', true ); فعال کردن حالت دیباگ وردپرس برای کوئریها
وردپرس، امکان عیب یابی یا همان دیباگ کردن کوئریهای دیتابیس (پایگاه داده) را هم دارد. جهت فعالسازی این ویژگی؛ از ثابت define( ‘SAVEQUERIES’, true ); استفاده کنید.
توجه داشته باشید، تنها در صورتی که نیاز به عیب یابی پیشرفتۀ سایت وردپرسی خود دارید، این ثابت را فعال کنید. برای یک عیب یابی ساده، همان ثابتهای ابتدای این صفحه، کافی هستند.
define( 'SAVEQUERIES', true ); آیا حالت دیباگ وردپرس باید همیشه فعال باشد؟
خیر. دیباگ وردپرس، تنها برای زمانی که میخواهید یک مشکل یا منبع خطا را پیدا کنید، کاربرد دارد. پس حتماً بعد از پیدا کردن و حل مشکلات، کدهای دیباگ را از فایل wp-config.php حذف یا کامنت (//) کنید.
نکتۀ مهم درباره دیباگ وردپرس
فعالسازی دیباگ وردپرس یک ابزار قدرتمند برای عیبیابی است، اما این قابلیت باید صرفاً بهصورت موقت و هدفمند استفاده شود. نگهداشتن حالت دیباگ در یک سایت عملیاتی (Live) اقدامی حرفهای محسوب نمیشود.
زمانی که دیباگ فعال باشد، پیامهای خطا، هشدارهای PHP و اعلانهای توابع منسوخ (Deprecated) ممکن است در خروجی سایت نمایش داده شوند. این موضوع علاوه بر برهمزدن ظاهر صفحات، میتواند اطلاعات فنی حساسی مانند مسیر فایلها، ساختار افزونهها یا جزئیات سرور را آشکار کند؛ اطلاعاتی که از نظر امنیتی نباید در دسترس عموم قرار گیرند.
به همین دلیل توصیه میشود پس از پایان فرآیند عیبیابی:
- مقدار WP_DEBUG را روی false قرار دهید.
- در صورت عدم نیاز، سایر ثابتهای مرتبط را نیز غیرفعال یا کامنت کنید.
- فایل debug.log را بررسی و در صورت لزوم پاکسازی نمایید.
استفاده صحیح از حالت دیباگ وردپرس به این معناست که آن را دقیقاً در زمان نیاز فعال کرده و بلافاصله پس از رفع مشکل، تنظیمات را به وضعیت پایدار بازگردانید.
جدول خلاصه تنظیمات دیباگ وردپرس
برای درک سریعتر تنظیمات دیباگ وردپرس و کاربرد هرکدام از ثابتها، در جدول زیر مهمترین گزینههای مرتبط با عیبیابی را بهصورت خلاصه مشاهده میکنید. این جدول به شما کمک میکند بسته به نوع مشکل (خطای عمومی، مشکلات اسکریپت، بررسی دیتابیس یا تحلیل حرفهای لاگها) تنظیم مناسب را انتخاب کنید.
| ثابت | کاربرد | مناسب برای |
|---|---|---|
| WP_DEBUG | فعالسازی حالت دیباگ و نمایش خطاهای اصلی PHP | توسعه و عیبیابی اولیه |
| WP_DEBUG_LOG | ذخیره خطاها در فایل debug.log داخل پوشه wp-content | بررسی حرفهای و تحلیل گزارشها |
| SCRIPT_DEBUG | بارگذاری نسخه غیر فشرده فایلهای JS و CSS برای بررسی خطا | توسعه و دیباگ قالب و افزونه |
| SAVEQUERIES | ذخیره و نمایش جزئیات کوئریهای دیتابیس | بهینهسازی عملکرد و بررسی کوئریهای کند |
استفاده ترکیبی و هدفمند از این ثابتها باعث میشود فرآیند عیبیابی دقیقتر، سریعتر و کنترلشدهتر انجام شود. توجه داشته باشید که فعالسازی برخی گزینهها مانند SAVEQUERIES تنها در شرایط خاص و برای بررسیهای پیشرفته توصیه میشود، زیرا میتواند مصرف منابع سرور را افزایش دهد.

نکات امنیتی هنگام فعال سازی دیباگ وردپرس
فعالسازی دیباگ وردپرس بدون در نظر گرفتن ملاحظات امنیتی میتواند منجر به افشای اطلاعات فنی حساس شود. پیامهای خطا گاهی شامل مسیر کامل فایلها، ساختار افزونهها، نام توابع داخلی یا حتی جزئیات سرور هستند؛ اطلاعاتی که در اختیار داشتن آنها برای مهاجمان مفید است. بنابراین رعایت نکات زیر ضروری است:
عدم نمایش خطا به کاربران
در سایتهای عملیاتی (Live)، مقدار WP_DEBUG_DISPLAY را روی false قرار دهید تا خطاها در صفحات سایت نمایش داده نشوند. در صورت نیاز، تنها ذخیره خطا در فایل لاگ را فعال کنید. این کار از برهم خوردن ظاهر سایت و افشای اطلاعات جلوگیری میکند.
محدود کردن دسترسی به فایل debug.log
فایل wp-content/debug.log ممکن است شامل جزئیات دقیقی از ساختار سایت باشد. برای جلوگیری از دسترسی مستقیم به این فایل:
- سطح دسترسی (Permission) پوشه و فایل را بهدرستی تنظیم کنید.
- در صورت امکان، با استفاده از فایل .htaccess یا تنظیمات سرور، دسترسی مستقیم به این فایل را مسدود نمایید.
بهتر است پس از پایان فرآیند عیبیابی، فایل لاگ را بررسی و در صورت عدم نیاز حذف کنید.
جلوگیری از ایندکس شدن فایل لاگ
اگر دسترسی به فایل لاگ مسدود نشده باشد، ممکن است موتورهای جستجو آن را ایندکس کنند. برای جلوگیری از این موضوع:
- دسترسی HTTP به فایل debug.log را مسدود کنید.
- از ایندکس شدن پوشه wp-content جلوگیری نمایید (در صورت نیاز از تنظیمات سرور یا robots.txt استفاده شود).
بیتوجهی به این موضوع میتواند باعث افشای ناخواسته اطلاعات داخلی سایت شود.
آیا دیباگ وردپرس سرعت سایت را کاهش میدهد؟
بله، در برخی شرایط میتواند باعث کاهش جزئی عملکرد شود. زمانی که حالت دیباگ وردپرس فعال است، ثبت خطاها، ذخیره لاگها و بررسی کوئریها منابع بیشتری از سرور مصرف میکند. اگر گزینههایی مانند SAVEQUERIES نیز فعال باشند، فشار روی دیتابیس افزایش مییابد. به همین دلیل توصیه میشود دیباگ تنها در زمان عیبیابی و بهصورت موقت فعال باشد.
آیا دیباگ برای کاربران قابل مشاهده است؟
بستگی به تنظیمات دارد. اگر مقدار WP_DEBUG_DISPLAY روی true باشد، پیامهای خطا و هشدارها ممکن است در صفحات سایت نمایش داده شوند و برای کاربران قابل مشاهده باشند. اما اگر این مقدار روی false تنظیم شود، خطاها فقط در فایل لاگ ذخیره میشوند و کاربران چیزی مشاهده نخواهند کرد. در سایتهای عملیاتی، بهتر است نمایش خطا غیرفعال و فقط ذخیره لاگ فعال باشد.
آیا در هاست اشتراکی هم میتوان از دیباگ وردپرس استفاده کرد؟
بله، دیباگ وردپرس مستقل از نوع هاست عمل میکند و در هاست اشتراکی نیز قابل استفاده است. تنها نکته مهم این است که دسترسی به فایل wp-config.php و پوشه wp-content داشته باشید. البته در برخی هاستهای اشتراکی ممکن است محدودیتهایی در سطح تنظیمات PHP یا دسترسی به فایلهای لاگ سرور وجود داشته باشد.
چرا فایل debug.log ساخته نمیشود؟
ساخته نشدن فایل debug.log معمولاً به یکی از دلایل زیر است:
- ثابت WP_DEBUG_LOG فعال نشده است.
- مقدار WP_DEBUG روی false قرار دارد.
- پوشه wp-content دسترسی نوشتن (Write Permission) ندارد.
- هنوز خطایی در سایت رخ نداده تا چیزی در فایل ثبت شود.
برای اطمینان، بررسی کنید که هر دو مقدار WP_DEBUG و WP_DEBUG_LOG روی true باشند و سطح دسترسی پوشهها به درستی تنظیم شده باشد.
جمع بندی دیباگ وردپرس (حالت اشکال زدایی وردپرس)
حالت دیباگ وردپرس یک ابزار حیاتی برای عیبیابی دقیق و اصولی سایت است. ابزاری که به شما کمک میکند به جای حدس زدن، بر اساس داده واقعی تصمیم بگیرید. با استفاده درست از این قابلیت، میتوانید خطاهای پنهان، مشکلات افزونهها، ناسازگاری قالبها و حتی افتهای عملکردی را شناسایی و برطرف کنید.
با این حال، دیباگ وردپرس یک ابزار دائمی برای سایتهای فعال نیست. فعال نگه داشتن آن در محیط عملیاتی میتواند باعث نمایش خطاها به کاربران یا افزایش حجم فایلهای لاگ شود. بنابراین استفاده از آن باید هدفمند، موقت و کنترلشده باشد.
اگر به عنوان مدیر سایت یا توسعهدهنده وردپرس فعالیت میکنید، تسلط بر فعالسازی و مدیریت تنظیمات دیباگ نه یک گزینه، بلکه یک مهارت ضروری است؛ مهارتی که سرعت پشتیبانی، کیفیت توسعه و ثبات سایت شما را به شکل محسوسی افزایش میدهد.
