آموزش کامل استفاده از WP_DEBUG در وردپرس
چه شما یک کاربر وردپرسی باشید و چه یک توسعه دهنده وردپرس، آشنایی با 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 | 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 | 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 | define('WP_DEBUG_DISPLAY', false); |
و جمع بندی پایانی
حالا اگر بخواهیم از ترکیب هر سه ثابتی که در اینجا درباره شان صحبت کردیم استفاده کنیم، کافی است کد زیر را در wp-config.php قرار دهیم :
1 2 3 4 5 6 7 8 9 10 11 | // 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 مربوط به محیط لوکال است و استفاده از آن در یک وبسایت اصلی شما که بازدیدکننده ها به آن دسترسی دارند اصلا صحیح نیست.
سلام
من مشکلی با سایت دارم که با فعال کردن ویژوال کامپوزر گاهی اوقات سایت به طور کامل load نمیشه و فقط هدر و منو رو میاره. تداخل افزونه ها رو بررسی کردم و مشکلی نداشت. هر از گاهی این اتفاق میفته
آیا میشه مشکل رو با debug حل کرد ؟ لطفا کامل راهنمایی کنید – مبتدی هستم
سایتتون برای من مشکلی نداره.
این احتمال وجود داره که صرفا مشکلی در اینترنتتون داشته باشید که نتونید گاهی سایتتون رو کامل بارگذاری کنید.
من یه مشکلی تو سایتم دارم تونم اینه که وقتی از قسمت سفارشی سازی میرم میتونم برم به قسمت فهرست ها و منو درست کنم ، ولی وقتی از قسمت نمایش >> فهرست میرم ،هیچی نشون نمیده و فهرست ها رو نمیاره..لطفا راهنمایی بفرمایید
سلام ممنون از سایت خوبتون
من از هاست استفاده میکنم و افزونه theme check برای پیدا کردن باگ های قالبم استفاده کردم و ارور زیر رو داده
WARNING WP_DEBUG is not enabled! Please test your theme with debug enabled before you upload!
با توجه به توضیح شما که نباید این کدها رو در سایت اصلی قرار بدیم. من باید برای رفع این مشکل چکار کنم؟
میشه راهنمایی بفرمایید برای رفع باگ های قالب چکار باید بکنیم؟خیلی ممنون
سلام
این پیام نمیگه شما wp_debug رو در سایت فعال کنید. داره میگه حالت دیباگ روی سایتتون فعال نیست پس قبل از اینکه قالبی رو آپلود کنید، در محیطی که wp_debug روی اون فعال باشه، قالب رو تست کنید که ایرادی نداشته باشه.
معمولا این تست هارو به صورت لوکال انجام میدن. (چون قالبی که تست نکردید و نباید یک راست روی سایتتون نصب کنید … بهتره همیشه یک محیط تست یکسان با سایتتون داشته باشید)
گرامی وقتی میفرمایید قالب قبل از نصب روی محیط لوکال تست کنید این محیط کجاست اموزشی ارائه میدین؟
مشکل من اینه خیلی زیاد ارور 500 میگیرم و متوجه نمیشم این ارور ازروی چیست
ایا با این توضیحات شما میتوانم خطا رو پیدا کنم؟
و چجوری؟
حافظه php 512 هم گذاشتم
اما باز ارور میگیرم
مترجم قالب از سایت راستچین میگه مشکل از هاسته ولی هاستینگ که از قضا دوست بنده است این جریان رو تکذیب میکنه
ممنون میشم راهنمایی کنید
ممنون میشم راهنمایی کنید
با سلام و وقت بخیر.
چرا بعد از هر بار خروج از وردپرس، برگه هایی که ایجاد کردم به حالت پیش نویس درمیان و وقتی از منوی ایجاد شده در سایتِ در حال طراحی وارد هرکدوم از برگه ها میشم با این خطا که “شما اجازه دیدن پیش نویس را ندارید” مواجه میشم ، در صورتی که همشون در حالت منتشر شده و عمومی هستن؟
سلام
یه جایی دارید یه اشتباهی میکنید وگرنه غیر ممکنه برگه عمومی و منتشر شده باشه ولی امکان دیدنش توسط بازدید کننده وجود نداشته باشه و چنین پیامی بده. یه جایی یه چیزی رو دارید از قلم میندازید ولی متاسفانه با اطلاعاتی که ارائه کردید من نظر خاصی راجع به دلیلش نمیتونم بدم.
سلام
برای سایتی که فعال است و بعضی مواقع خطا میده، چکار کنیم؟ چون گفتید این کد رو روی سیت فعال نباید استفاده کرد
لطفا بعد از پاسخ دادن از طریقایمیل منو باخبر کنید
تشکر از سایت خوبتون