Debugging WordPress: Panduan Penting

Diterbitkan: 2021-02-11

Terlepas dari level pengembang WordPress Anda, ada satu masalah yang akan selalu Anda hadapi: bug. Bahkan pengembang yang paling berpengalaman pun tidak dapat secara konsisten membuat kode dengan cara yang tidak menghasilkan bug. Faktanya, debugging WordPress sebenarnya dapat membantu Anda mempelajari lebih lanjut tentang platform!

Jika Anda memiliki pengalaman pemrograman sebelumnya, kemungkinan Anda mengalami kesalahan saat kompilasi atau runtime. Kecuali Anda menyerah dan membuang proyek, kemungkinan Anda menghabiskan waktu untuk menelusuri kode dan melacak masalahnya. Dinamika dengan WordPress adalah sama.

Tidak seperti ketika Anda memprogram dalam bahasa pemrograman umum, kesalahan WordPress tidak hanya dicetak pada halaman. Ini karena log debug sering kali berisi informasi sensitif, seperti kredensial ke database. WordPress sebaliknya akan menjatuhkan log tersebut ke dalam file di server Anda yang tidak dapat diakses oleh publik.

Untungnya, tidak seperti komputer seberat tiga puluh ton yang dikembangkan oleh Angkatan Darat AS, Anda tidak perlu benar-benar menghapus bug mati dari mesin Anda untuk mencapainya! Sekarang kita memiliki beberapa konteks, mari kita lihat lebih teknis apa yang masuk ke dalam proses debug WordPress.

Debug WordPress Dijelaskan

Seperti yang mungkin Anda ketahui, WordPress dikembangkan menggunakan PHP. Itu berarti bahwa panduan resmi WordPress tentang debugging, serta panduan debugging PHP resmi akan menjadi sumber yang bagus untuk membantu Anda di sepanjang jalan.

Untuk men-debug sama sekali, WordPress mengharuskan Anda untuk mendefinisikan variabel PHP global. Kami akan membahas persis bagaimana melakukannya di bagian berikutnya.

Sangat penting untuk membedakan bagaimana proses debug PHP berbeda dari proses debug WordPress. Dengan vanilla PHP, hanya dua jenis kesalahan yang ditampilkan secara default. Salah satunya adalah "kesalahan fatal", artinya sangat parah sehingga halaman tidak dapat dimuat. Yang lainnya hanya menunjukkan kepada pengguna halaman kosong jika ada "kesalahan fatal yang sensitif". Dengan kata lain, PHP tahu bahwa mencetak pesan kesalahan penuh dapat menimbulkan risiko keamanan. Pengaturan ini dapat dengan mudah dimodifikasi dalam PHP itu sendiri.

WordPress, di sisi lain, sedikit lebih bertele-tele dalam hal debugging. Jika Anda hanya mengaktifkan debugging WordPress dan tidak menyesuaikannya, setiap tingkat kesalahan, peringatan, dan bahkan item informatif untuk pengembang akan ditampilkan. Itu berarti segala sesuatu mulai dari kesalahan fatal hingga pesan teknis tentang bagaimana Anda harus mengoptimalkan bagian JavaScript akan ditampilkan. Meskipun ini sangat membantu pengembang, ini mungkin bukan konten terbaik untuk ditampilkan kepada pengguna.

Fitur unik lainnya adalah Anda akan diberi tahu tentang fungsi PHP khusus WordPress yang sudah tidak digunakan lagi. Fungsi yang sudah tidak digunakan lagi adalah fungsi yang mungkin masih berfungsi sekarang, tetapi dukungannya akan dihentikan di masa mendatang. Ini juga biasanya berarti bahwa ada cara yang lebih baik dan lebih cepat untuk menyelesaikan proses yang sama.

Kami tahu bahwa Anda mungkin tidak bersemangat untuk men-debug WordPress, tetapi ini penting jika Anda ingin mempertahankan blog atau situs yang berfungsi. Namun, sebelum Anda mulai mengedit file, pastikan untuk menggunakan plugin cadangan WordPress tepercaya terlebih dahulu. Dengan cara ini, jika Anda secara tidak sengaja membuat situs Anda tidak dapat dioperasikan, Anda dapat memulihkan semuanya hanya dengan beberapa klik!

Sekarang, mari kita lihat bagaimana kita bisa berguling!

Bagaimana Cara Mengaktifkan Debugging di WordPress?

Untuk memulai proses debug WordPress, kita memerlukan beberapa baris PHP.

Jalankan editor teks favorit Anda (selama editor teks favorit Anda bukan Windows Notepad!). Jika Anda perlu mengambilnya, Notepad++ adalah editor teks open-source yang umum digunakan yang mendukung hampir semua bahasa pemrograman.

Selanjutnya, unduh salinan file wp-config.php Anda. Jangan mengedit file asli! Kami hanya akan mengunggah versi yang dimodifikasi setelah kami selesai.

Setelah Anda membuka wp-config.php di editor teks Anda, Anda harus menambahkan baris kode berikut. Pertama, cari untuk memastikan Anda belum memilikinya; PHP menjadi sangat tidak senang jika Anda mendefinisikan variabel yang sama dua kali!

 define( 'WP_DEBUG', true );

Semua baris kode ini mengatur variabel PHP global yang disebut WP_DEBUG ke nilai boolean true.

Demikian juga, jika Anda ingin mengubah debug WordPress fitur off, Anda baru saja dimasukkan ke dalam garis kebalikan dari kode:

 define( 'WP_DEBUG', false );

Ini mengaktifkan debugging, tetapi itu tidak terlalu membantu jika kita tidak tahu bagaimana menemukan informasi yang dihasilkan!

Di mana Log Debug WordPress?

Secara teknis ada dua jawaban untuk pertanyaan ini, dan jawaban yang tepat tergantung pada pilihan Anda.

Seperti yang kami katakan, salah satu caranya adalah dengan memasukkan define( 'WP_DEBUG', true );. Ini menggunakan pengaturan log debugging WordPress default, yang secara otomatis membuat file jika tidak ada (atau menambahkannya jika ada) di lokasi wp-content/debug.log.

Namun, ada beberapa alasan mengapa Anda menginginkannya di lokasi yang berbeda. Misalnya, Anda mungkin ingin memilikinya di lokasi di mana alat debugging pihak ketiga dapat mengaksesnya. Untuk menyesuaikan di mana log debug diletakkan, Anda dapat mengaktifkan debugging seperti ini:

 define( 'WP_DEBUG_LOG', '/best-wp-dev/errors.log' );

Log Debug WordPress Dijelaskan

Tingkat detail informasi di log debug WordPress Anda bergantung pada cara Anda mengonfigurasinya. Jika Anda hanya mengaktifkannya tanpa modifikasi tambahan, Anda akan mencatat hampir semua kejadian yang menyebabkan kesalahan, menggunakan fungsi yang tidak digunakan lagi, atau tidak optimal.

Karena WordPress dibangun di atas PHP, log Anda akan menampilkan setiap kesalahan PHP dan peringatan yang dilemparkan. Ini juga akan berisi tanggal, waktu, dan alamat IP yang terkait dengan setiap acara. Sayangnya, Anda juga akan melihat keluaran PHP (sangat) verbose tentang banyak hal, seperti penataan kode yang tidak disukai, validasi data yang dirasa harus diperkuat, dan banyak lagi.

Khususnya bagi orang yang baru mulai men-debug WordPress, melihat file log bisa sangat melelahkan. Namun, Anda harus ingat bahwa hanya beberapa item yang diperlukan.

Debug vs. Logging

Meskipun mereka bertujuan untuk mencapai tujuan yang sama, penting bagi Anda untuk memahami perbedaan antara debugging dan logging. Dengan kata lain, baris define( 'WP_DEBUG', true ); melakukan sesuatu yang sama sekali berbeda dari baris define( 'WP_DEBUG_LOG', true );.

Dalam hal apa pun Anda tidak boleh menggunakan define( 'WP_DEBUG', true ); pada situs yang dapat diakses oleh publik. Perintah ini, ketika digunakan dengan sendirinya, hanya akan mencetak pesan debug. Ini tidak mencatat apa pun, dan akan menampilkan informasi yang dapat digunakan untuk mencuri data dari situs Anda. Memastikan bahwa ini tidak diaktifkan, bersama dengan plugin keamanan WordPress yang solid, akan menggagalkan sebagian besar upaya serangan siber.

Keamanan iThemes (sebelumnya Keamanan WP Lebih Baik)

Men-debug WordPress Tanpa Mempertaruhkan Keamanan

Jelas, Anda perlu men-debug situs Anda secara teratur. Namun, Anda mungkin tidak ingin terus-menerus menambah dan menghapus baris kode dari file wp-config.php Anda.

Memikirkan prosesnya, pertama-tama kita harus mengaktifkan debugging secara umum. Kemudian, kita harus memastikan bahwa kita mencatat kesalahan untuk memungkinkan perbaikannya. Namun, kami tidak ingin menunjukkan kesalahan ini kepada masyarakat umum. Ingat bahwa kita perlu menekan kesalahan standar PHP dan kesalahan khusus WordPress agar tidak ditampilkan.

Contoh Kode Debug WordPress Aman

Dengan menggunakan proses yang kami uraikan di atas, berikut adalah empat baris kode yang dapat membantu Anda memulai dengan men-debug situs Anda dengan aman!

 define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );

Tiga baris pertama di atas hanyalah mengatur variabel PHP global yang diperhatikan WordPress. Kami memungkinkan untuk melakukan debug, menyiapkan fungsionalitas logging kami, dan kemudian mematikan kesalahan khusus WordPress.

Kemungkinan baris keempat sepertinya keluar dari bidang kiri! Baris ini untuk mengatasi kesalahan PHP yang tidak ditangani oleh WordPress. Ini adalah dasar terakhir yang harus ditutup untuk memastikan bahwa pengguna jahat tidak mendapatkan akses ke informasi situs yang sensitif.

Bagaimana Saya Memperbaiki Kesalahan Debugging WordPress?

Cukup sering, pengembang akan menggunakan empat baris kode yang telah kita bahas. Mereka akan mengalami kesalahan, seperti kegagalan koneksi database, tetapi tidak akan ada apa pun di log debug tentang hal itu. Ini karena WordPress memiliki variabel PHP global yang berbeda untuk metode debugging yang berbeda.

Mari kita lihat beberapa skenario di mana Anda perlu menambahkan beberapa baris lagi ke file wp-config.php Anda untuk men-debug WordPress dengan benar.

Men-debug WordPress JavaScript

Jika Anda memiliki situs WordPress, kemungkinan besar situs tersebut menggunakan JavaScript. Untuk pengembang baru, ini pada dasarnya adalah bahasa yang menggerakkan elemen interaktif situs. JavaScript terkenal sangat membosankan untuk di-debug. Ini karena situs modern sering menggunakan kerangka kerja di atas JavaScript, yang semakin memperumit peringatan dan pesan kesalahan.

Sayangnya, itu bukan satu-satunya hal yang membuat debugging JavaScript WordPress menjadi sulit. Ada dua bentuk dasar JavaScript: asinkron atau "AJAX", dan JavaScript biasa . JavaScript biasa beroperasi secara linier; itu tidak akan menjalankan satu fungsi sampai eksekusi yang satu sebelum selesai. Meskipun ini mungkin berhasil pada hari-hari awal web, itu tidak memotongnya untuk aplikasi web.

AJAX, di sisi lain, beroperasi di latar belakang di situs WordPress Anda. Ini memungkinkan Anda untuk menjalankan fungsi JavaScript dan menunggu outputnya, tetapi tidak mencegah fungsi lain berjalan. Seringkali diperlukan untuk mencegah situs terkunci.

Alasan WordPress meminta kami menggunakan variabel global PHP lain untuk mengatakan bahwa kami ingin men-debug skrip adalah karena metode debug ini menghasilkan sejumlah besar data.

Alasan WordPress meminta kami menggunakan variabel global PHP lain untuk mengatakan bahwa kami ingin men-debug skrip adalah karena metode debug ini menghasilkan sejumlah besar data. Itu juga karena JavaScript dan CSS berjalan di sisi klien, sementara PHP berjalan di sisi server. Untuk menampilkan setiap kesalahan yang dialami WordPress karena JavaScript dan CSS, cukup tambahkan baris ini:

 define( 'SCRIPT_DEBUG', true);

Ini akan menampilkan kesalahan JavaScript dan CSS (stylesheet). Itu juga dapat membantu dengan operasi AJAX yang lebih kompleks itu.

Memperbaiki Masalah Data

Hampir setiap situs web mengambil informasi dari database. WordPress memiliki beberapa database; beberapa situs menyimpan database di server terpisah, dan beberapa menyimpannya di server yang sama. Karena semua konfigurasi berbeda, selalu ada kemungkinan terjadi kesalahan dalam koneksi database Anda.

Jika Anda mendapatkan pesan kesalahan yang mengatakan bahwa WordPress tidak dapat terhubung ke database, atau Anda melihat bahwa data tidak ditarik dengan benar, Anda mungkin perlu melakukan debug. Cukup menggunakan variabel debug WordPress standar, Anda mungkin akan melihat bahwa tidak ada yang akan dicatat ketika Anda menemukan kesalahan terkait database.

Ini karena WordPress mempartisi kesalahan terkait basis data dari semua kesalahan lainnya. Pesan kesalahan basis data sering kali berisi informasi sensitif, dan pengembang WordPress ingin memastikan Anda tidak secara tidak sengaja membocorkan informasi pribadi ke publik!

Untuk mulai men-debug masalah database WordPress, Anda perlu menambahkan baris lain ke file wp-config.php Anda:

 define( 'SAVEQUERIES', true );

Menyelam ke Debugging Basis Data

Tidak seperti variabel debug WordPress global kami yang lain, kami perlu memberi perhatian khusus pada variabel ini. “SAVEQUERIES” memberi tahu WordPress bahwa kami ingin melihat setiap kueri berjalan dan hasilnya dikembalikan. Ini secara substansial akan merusak kinerja seluruh situs! Berhati-hatilah untuk tidak menjalankan ini di server Anda pada waktu sibuk, dan matikan segera setelah Anda tidak membutuhkannya.

Ini juga menyimpan outputnya sedikit berbeda. WordPress menggunakan array string PHP yang perlu Anda akses untuk melihat informasi debugging database. Itu terletak di variabel global PHP yang disebut $wpdb dan di array anggota yang disebut kueri. Anda dapat mencapainya dengan mencetak konten $wpdb->queries

Men-debug Plugin WordPress

Salah satu keuntungan utama WordPress dibandingkan platform lain adalah perpustakaan plugin yang kaya yang dapat melakukan apa saja. Anda mungkin membaca ini dan sudah pusing memikirkan logistik kebutuhan untuk terus-menerus mengubah konten file. Untungnya, beberapa plugin dapat membantu kami men-debug WordPress! Ada dua yang sangat populer yang membuatnya mudah.

Debug WP

Terletak di situs WordPress, ini adalah salah satu plugin debug WordPress yang paling terkenal. Ini pada dasarnya mengotomatiskan proses yang sudah kita bicarakan. Dengan beberapa klik dari dasbor Anda, Anda dapat mengaktifkan dan menonaktifkan semua variabel global PHP ini di situs Anda.

Saat Anda menginstal plugin ini, Anda juga menginstal serangkaian plugin yang bergantung padanya. Secara keseluruhan, mereka membiarkan Anda masuk dan membantu Anda menafsirkan kesalahan yang Anda temukan.

Alat ini sangat bagus untuk mengaktifkan proses debugging, tetapi untuk men-debug plugin Anda sendiri dan untuk dengan mudah melihat informasi debug WordPress terkait database, Anda juga memerlukan plugin lain.

Bilah Debug

Seperti namanya, Debug Bar hanyalah sebuah bar di panel admin situs WordPress Anda. Ini dapat digunakan bersama dengan alat WP Debugging.

Ini memiliki alat untuk pengembang yang lebih maju, memungkinkan mereka untuk melihat cache, kueri yang telah dikeluarkan, hasil kueri, dan informasi lebih lanjut. Seperti yang kami sebutkan, WordPress memasukkan semua informasi debug basis data ke dalam variabel global PHP.

Untuk benar-benar melihat informasi itu, Anda perlu mengulangi array itu dalam file PHP khusus. Plugin ini memberi Anda alternatif yang mudah. Ini mencetak semua informasi ini untuk Anda dalam format yang cukup mudah dibaca dan dipahami. Bahkan memberi Anda beberapa tips tentang cara mengoptimalkan panggilan basis data Anda!

Dapatkan konten bonus: 10 Fitur untuk Memilih Plugin Cadangan WordPress
Klik disini

Men-debug Tema WordPress

Men-debug tema WordPress biasanya melibatkan pengaktifan variabel global PHP terkait skrip. Ini karena tema menggunakan JavaScript dan CSS sisi klien.

Pertama, pastikan bahwa itu adalah tema yang Anda tulis. Jika itu adalah tema pihak ketiga yang mengalami masalah, Anda harus menghubungi pembuat tema tersebut. Ini akan cukup banyak mencoba untuk menemukan jarum di tumpukan jerami untuk melakukannya sendiri!

Jika itu adalah tema Anda sendiri, pastikan Anda mengikuti langkah-langkah yang kami diskusikan untuk mengaktifkan debugging. Lakukan tindakan apa pun yang membuat Anda menyadari bug tersebut. Anda juga dapat mengaktifkan Konsol Pengembang dalam browser web Anda dengan menekan F12. Ini menunjukkan lebih banyak pesan kesalahan tingkat klien yang dapat membantu dalam proses.

Setelah melakukan tindakan pada tema Anda yang menyebabkan kesalahan, lihat log. Harus ada informasi terperinci di sana tentang apa yang menyebabkan kesalahan. Kemungkinannya adalah hanya perlu beberapa penyesuaian JavaScript dan/atau CSS untuk membuat semuanya kembali normal!

Men-debug Kesalahan Kritis WordPress

Jika plugin, tema, atau konten khusus lainnya menghasilkan kesalahan yang menyebabkan situs WordPress Anda gagal, situs Anda akan mengirimi Anda email tentang kegagalan tersebut. Khususnya untuk webmaster baru, ini bisa menyusahkan.

Tidak perlu khawatir, karena Anda cukup mengikuti rangkaian langkah ini untuk menyelesaikan masalah dalam waktu yang sangat singkat!

  1. Pastikan Anda telah mengaktifkan mode debug WordPress.
  2. Akses log kesalahan Anda. Itu harus memiliki informasi rinci tentang kesalahan fatal. Jika demikian, cari kode kesalahan yang tepat secara online.
  3. Periksa versi PHP Anda. Jika bukan itu yang dibutuhkan WordPress saat ini, cukup memperbarui versi PHP yang digunakan server Anda dapat memperbaiki masalah tersebut.
  4. Jika Anda masih belum beruntung, buka plugin Anda. Matikan semuanya . Jika situs berfungsi, itu berarti sebuah plugin menyebabkan masalah. Telusuri satu per satu sampai Anda menemukan plugin yang bermasalah. Hubungi siapa pun yang menulisnya dan minta mereka untuk memperbaikinya.
  5. Jika Anda masih belum menemukan masalahnya, itu mungkin masalah terkait tema. Coba kembalikan tema Anda saat ini ke WordPress default. Jika situs Anda berfungsi, Anda perlu mengubah tema untuk sementara hingga penulis menyelesaikan masalah.
  6. Tidak ada dadu? Letakkan kesalahan Anda di forum pengembang WordPress. Ada banyak pengguna yang dengan senang hati akan membantu Anda.

Membungkus

Debugging WordPress dapat membantu Anda memecahkan sejumlah masalah yang Anda temui. Ini dapat memberi tahu Anda plugin apa yang memiliki masalah atau masalah apa yang mungkin Anda miliki dengan sebuah tema. Sebagai pengembang WordPress, debugging membantu Anda tidak hanya menjadi pengembang yang lebih baik tetapi juga membantu Anda menghasilkan kode yang bersih dan berkualitas.