Kamusta, at welcome sa LearnWordPress.
Sa tutorial na ito, matututuhanmo ang tungkol sa mga debugging option
sa WordPress. Malalaman mo kungpaano paganahin ang built-in
debugging options ng WordPress at kungpaano ito gamitin, pati na rin ang ilang plugin
na makakatulong sa pag-debug ngmga page request mo.
Ang debugging ay ang proseso ngpaghanap at pag-aayos ng mga error
sa iyong code. Dahil ang pangunahingwika sa WordPress ay
PHP at JavaScript, kailangan mongmatutong mag-debug ng pareho.
Para sa JavaScript na pinapatakbo sa browser,madali lang gamitin ang
console.log para magpakita ng mensahesa browser console para sa
testing at debugging. Samantalang ang PHPay pinapatakbo sa server,
kaya kailangan mong hanapin kung ano angnangyayari kapag may problema.
May ilang third-party tools para sa advanceddebugging, gaya ng XDebug o Ray,
pero sa tutorial na ito, tatalakayin natin ang mgaopsyon na specific sa WordPress
na hindi nangangailangan ng dagdag na software.
Sa bawat WordPress request lifecycle,pinapatakbo ang wp_debug_mode
function upang i-setup angdebugging environment. Ang function na ito
ay nasa wp-includes/load.php na file.
Makikita sa code na kapag ang WP_DEBUGconstant ay naka-set sa true,
naka-enable ang PHP error reporting level naE_ALL, ibig sabihin ay lahat ng error
ay irereport. Kung ang WP_DEBUG_DISPLAYay true din,
nakaset din ang display_errors ng PHPsa 1, kaya makikita ang errors sa screen.
Kapag ang WP_DEBUG_LOG ay true,nakaset ang error log sa wp-content/debug.log.
Pwede mo rin i-configure na ibang location angdebug log file.
Kapag naka-enable ang log file,ang PHP log_errors ay isa-set sa 1 at
ang error_log ay ituturo sa path ng log file.
Sa pamamagitan nito, pwede mong i-configure angiyong wp-config file para i-enable ang debugging.
Buksan ang wp-config file at hanapin ang bahagi na may WP_DEBUG constant.
I-update ito para magmukhang ganito.
Ang configuration na ito ay mag-e-enable ng debugging,i-disable ang pag-display ng error sa screen,
pero ilo-log pa rin ang mga ito sa wp-content/debug.log.
Depende sa preference mo, pwede mong i-enable ang error display,pero hindi ito ideal,
lalo na kung mag-overlap ito sa ibang mahahalagang content sa screen.
Kapag nag-debug ka sa production site,huwag mong i-display ang error sa screen
dahil pwede itong magpakita ng sensitibong impormasyon sa user.
Tingnan natin ito sa isang halimbawa.
Sabihin nating gumawa ka ng plugin na may ganitong code.
Nagka-create ito ng form submissions table sa database kapag in-activate.
Nag-re-register ito ng REST API GET route para kunin ang form submissions.
Para sa testing, naglagay ka ng sample data manually.
Pero kapag binisita mo ang REST API GET route, wala kang nakikitang submission.
Pwede mong i-enable ang debugging para makita ang mga error sa wp-content/debug.log.
Makikita mong may dalawang error na naka-log.
Una ay PHP notice dahil mali ang pagkaka-hook ng function.
Pangalawa ay error sa database query—mali ang table name.
Dapat ay "form_submissions" hindi "form_submission".
Ayusin ang hook at ang table name sa query.
Kapag inayos mo ito at binisita muli ang REST API GET route, lalabas na ang mga submission.
Bukod sa pag-log ng error, pwede ka ring mag-log ng mensahe gamit ang PHP error_log function.
Tatanggap ito ng isang string parameter, tulad ng pag-log ng SQL query.
Gamitin mo lang ang: error_log( $wpdb->last_query );
Kapag ni-refresh mo ang request at binuksan ang debug.log,makikita mo ang query.
Pwede mo ring i-log lahat ng query sa isang lifecyclesa pamamagitan ng pag-enable ng
SAVEQUERIES constant sa wp-config file.
Kapag naka-enable ito, pwede mong i-log ang lahat ng query gamit ang
print_r( $wpdb->queries );