اشکال زدایی کد PHP بخشی از هر پروژه می باشد، اما وردپرس دارای سیستم های خاص اشکال زدایی یا دیباگ است که برای ساده سازی فرآیند و همچنین استاندارد کردن کد در هسته، افزونه ها و قالب ها طراحی شده است. این مقاله ابزارهای مختلف اشکال زدایی وردپرس و نحوه بهره وری بیشتر در کدگذاری و همچنین افزایش کیفیت کلی و تعامل کد شما را توصیف می کند.
برای افراد غیر برنامه نویس یا کاربر عمومی، این گزینه ها جزئیات اطلاعات خطا ها را نشان می دهد.
WP_DEBUG
WP_DEBUG یک ثابت PHP (یک متغیر جهانی ثابت) است که می تواند برای ایجاد حالت اشکال زدایی وردپرس استفاده شود. این گزینه به صورت پیش فرض false است و معمولاً در پوشه wp-config.php روی نسخه های توسعه دهنده وردپرس روی true تنظیم می شود.
[code language=”php”]
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG’, false );
[/code]
توجه: مقادیر true و false در مثال با فراگیرها (‘) احاطه نشده اند . اگر ثابت ها را ‘false’ قرار دهید، آنها به عنوان true تعبیر می شوند زیرا آن را یک رشته (string) می کند.
استفاده از WP_DEBUG یا سایر ابزارهای دیباگ وردپرس در سایت های زنده توصیه نمی شود. آنها برای آزمایش محلی نصب شده اند.
خطاهای PHP، هشدارها و اعلان ها
فعال کردن WP_DEBUG باعث می شود تمام خطاهایPHP ، اعلان ها و هشدارها نمایش داده شوند. این امر رفتار پیش فرض PHP را که فقط خطا های مهلک را نشان می دهد و یا هنگام رسیدن به خطا ها صفحه سفید مرگ را نشان می دهد، تغییر می دهد.
نمایش همه اعلان ها و هشدارهای PHP اغلب منجر به پیام های خطا برای مواردی می شود که به نظر نمی رسد خراب باشند، اما از قراردادهای صحت سنجی داده در PHP پیروی نمی کنند. رفع این هشدارها و دیباگ وردپرس پس از شناسایی کد مربوطه به راحتی انجام می شود و کد حاصل از آن تقریباً همیشه مقاومت بیشتری در مقابل اشکال ها دارد و نگهداری آن آسان تر است.
توابع و استدلال های منسوخ شده
فعال کردن WP_DEBUG همچنین باعث می شود به توابع منسوخ شده و آرگمان های موجود در وردپرس که در سایت شما استفاده می شود، توجه شود. این ها توابع یا آرگومان های عملکردی هستند که هنوز از کد اصلی حذف نشده اند اما قرار است در آینده نزدیک حذف شوند. اعلان های استهلاک اغلب عملکرد جدیدی را نشان می دهد که باید به جای آن استفاده شود.
WP_DEBUG_LOG
WP_DEBUG_LOG همراه WP_DEBUG است که باعث می شود همه خطاها نیز در پرونده ورود به سیستم debug.log ذخیره شود. این امر برای زمانی که شما بخواهید بعداً همه اعلان ها را مرور کنید یا نیاز به مشاهده اعلانات خارج از صفحه داشته باشید، مفید خواهد بود. ( به عنوان مثال در هنگام درخواست AJAX یا wp- cron اجرا شود. )
توجه داشته باشید که این امکان را برای شما فراهم می کند تا با استفاده از تابع error log() که در PHP تعبیه شده است، پرونده را وارد کنید، که برای مثال می تواند هنگام اشکال زدایی از وقایع ایجکس مفید باشد.
وقتی روی true تنظیم شود، گزارش در سیستم پرونده سایت شما برای debug.log در فهرست محتوا ذخیره می شود (معمولاً wp-content / debug.log). متناوباً، می توانید آن را روی یک مسیر فایل معتبر تنظیم کنید تا پرونده در جای دیگری ذخیره شود.
[code language=”php”]
define( ‘WP_DEBUG_LOG’, true );
-or-
define( ‘WP_DEBUG_LOG’, ‘/tmp/wp-errors.log’ );
[/code]
توجه: برای WP_DEBUG_LOG برای انجام هر کاری در اشکال زدایی وردپرس ، WP_DEBUG باید فعال باشد. (یعنی true باشد) به یاد داشته باشید که می توانید WP_DEBUG_DISPLAY را به طور مستقل خاموش کنید.
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY یکی دیگر از همراهان WP_DEBUG است که کنترل می کند پیام های اشکال زدایی در داخل HTML صفحات نشان داده شوند یا خیر. پیش فرض “true” است که خطا ها و هشدارها را هنگام تولید نشان می دهد. تنظیم آن روی false همه خطا ها را پنهان می کند که باید همراه با WP_DEBUG_LOG استفاده شود تا بعداً خطاها بررسی شوند.
[code language=”php”]define( ‘WP_DEBUG_DISPLAY’, false );[/code]
توجه: برای WP_DEBUG_DISPLAY برای انجام هر کاری، WP_DEBUG باید فعال باشد. (یعنی true باشد) به یاد داشته باشید که می توانید WP_DEBUG_LOG را به طور مستقل کنترل کنید.
SCRIPT_DEBUG
SCRIPT_DEBUG یک ثابت مرتبط است که وردپرس را مجبور می کند تا به جای نسخه های کوچک شده که به طور معمول بارگیری می شوند، از نسخه های “dev” از پرونده های اصلی CSS و JavaScript استفاده کند. این در حالی است که شما در حال آزمایش تغییرات در پرونده های داخلی .js یا .css هستید. SCRIPT_DEBUG به صورت پیشفرض false است.
[code language=”php”]define( ‘SCRIPT_DEBUG’, true );[/code]
SAVEQUERIES
تعریف SAVEQUERIES نمایش داده های پایگاه داده را در یک آرایه ذخیره می کند و می توان آرایه ای را برای کمک به تجزیه و تحلیل آن نمایش داد. ثابت تعریف شده به عنوان true باعث می شود تا هر پرس و جو ذخیره شود، مدت زمان اجرای آن مشخص شده و تعیین شود که چه تابعی آن را فراخوانی کرده است.
[code language=”php”]define( ‘SAVEQUERIES’, true );[/code]
این آرایه در مسیر $wpdb->queries ذخیره میشود.
توجه: این امر بر عملکرد سایت شما تأثیر می گذارد. بنابراین اطمینان حاصل کنید که هنگام اشکال زدایی وردپرس این مورد را خاموش کنید.
مثال wp-config.php برای دیباگ وردپرس
کد زیر که در پرونده wp-config.php شما درج شده است، تمام خطاها، اخطارها و هشدارها را به پرونده ای به نام debug.log در فهرست wp-content وارد می کند. همچنین خطاها را پنهان می کند تا تولید صفحه را قطع نکنند.
[code language=”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’, false );
@ini_set( ‘display_errors’, 0 );
// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
define( ‘SCRIPT_DEBUG’, true );
[/code]
توجه: شما باید این کد را قبل از /* That’s all, stop editing! Happy blogging*/ ، در فایل wp-config.php وارد کنید.
افزونه های اشکال زدایی وردپرس
افزونه های دیباگ وردپرس زیاد و مختلفی وجود دارد که اطلاعات بیشتری را چه در مورد اشکالات داخلی، چه برای یک مولفه خاص و چه به طور کلی ، نشان می دهند. در اینجا چند نمونه آورده شده است:
- Query Monitor
- Debug Bar
- Log Deprecated Notices
امیدواریم این مقاله به شما اطلاعات مفیدی درباره اشکال زدایی وردپرس داده باشد.
نویسنده سینا عباسی
سایر مقالات نویسندهسینا عباسی، مدیر سئو ژاکت، بیش از 7 ساله که بهصورت تخصصی در حوزه سئو فعالیت میکند. وی مدرس و مشاور سئوی کسب و کارهای اینترنتی میباشد. سینا عباسی با تخصص و تجربهای که در حوزه سئو دارد، نگاه شما را به آموزش سئو در دنیای دیجیتال مارکتینگ تغییر میدهد.
سلام ، ممنون از مقاله خوب شما
سوال بنده این بود که موردی ندارد با ذکر منبع این مقاله را در سایت خودم قرار دهم !؟
سلام و ممنون از توجه شما
بله با ذکر منبع مشکلی نداره
موفق باشید