10 Kesalahan Paling Umum yang Dilakukan Pengembang WordPress

Diterbitkan: 2022-03-11

Kita hanya manusia, dan salah satu ciri manusia adalah kita melakukan kesalahan. Di sisi lain, kita juga sedang mengoreksi diri, artinya kita cenderung belajar dari kesalahan kita dan mudah-mudahan bisa menghindari kesalahan yang sama dua kali. Banyak kesalahan yang saya buat di ranah WordPress berasal dari upaya menghemat waktu saat mengimplementasikan solusi. Namun, ini biasanya akan membuat mereka bingung ketika masalah muncul sebagai akibat dari pendekatan ini. Membuat kesalahan tidak bisa dihindari. Namun, belajar dari kesalahan orang lain (dan kesalahan Anda sendiri tentu saja!) adalah jalan yang harus Anda ambil secara proaktif.

Insinyur terlihat seperti pahlawan super, tapi kita tetap manusia. Belajar dari kami.
Menciak

Kesalahan Umum No. 1: Menonaktifkan Debugging

Mengapa saya harus menggunakan debugging ketika kode saya berfungsi dengan baik? Debugging adalah fitur bawaan WordPress yang akan menyebabkan semua kesalahan PHP, peringatan, dan pemberitahuan (tentang fungsi yang tidak digunakan lagi, dll.) ditampilkan. Saat debugging dimatikan, mungkin ada peringatan atau pemberitahuan penting yang dihasilkan yang tidak pernah kita lihat, tetapi yang mungkin menyebabkan masalah nanti jika kita tidak menanganinya tepat waktu. Kami ingin kode kami bermain dengan baik dengan semua elemen lain dari situs kami. Jadi, saat menambahkan kode kustom baru ke WordPress, Anda harus selalu melakukan pekerjaan pengembangan dengan mengaktifkan debugging (tetapi pastikan untuk mematikannya sebelum menerapkan situs ke produksi!).

Untuk mengaktifkan fitur ini, Anda harus mengedit wp-config.php di direktori root instalasi WordPress Anda. Berikut ini cuplikan dari file biasa:

 // Enable debugging define('WP_DEBUG', true); // Log all errors to a text file located at /wp-content/debug.log define('WP_DEBUG_LOG', true); // Don't display error messages write them to the log file /wp-content/debug.log define('WP_DEBUG_DISPLAY', false); // Ensure all PHP errors are written to the log file and not displayed on screen @ini_set('display_errors', 0);

Ini bukan daftar lengkap opsi konfigurasi yang dapat digunakan, tetapi penyiapan yang disarankan ini harus cukup untuk sebagian besar kebutuhan debugging.

Kesalahan Umum No. 2: Menambahkan Skrip dan Gaya Menggunakan wp_head Hook

Apa yang salah dengan menambahkan skrip ke templat tajuk saya? WordPress sudah menyertakan banyak skrip populer. Namun, banyak pengembang akan menambahkan skrip tambahan menggunakan kait wp_head . Ini dapat mengakibatkan skrip yang sama, tetapi versi yang berbeda, dimuat beberapa kali.

Antrian di sini datang untuk menyelamatkan, yang merupakan cara ramah WordPress untuk menambahkan skrip dan gaya ke situs web kami. Kami menggunakan enqueuing untuk mencegah konflik plugin dan menangani dependensi yang mungkin dimiliki skrip. Ini dicapai dengan menggunakan fungsi wp_enqueue_script atau wp_enqueue_style masing-masing untuk membuat skrip dan gaya enqueue. Perbedaan utama antara kedua fungsi tersebut adalah bahwa dengan wp_enqueue_script kita memiliki parameter tambahan yang memungkinkan kita untuk memindahkan script ke footer halaman.

 wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_footer = false ) wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false ) wp_register_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) wp_enqueue_style( $handle, $src = false, $deps = array(), $ver = false, $media = 'all' )

Jika skrip tidak diperlukan untuk merender konten paro atas, kita dapat dengan aman memindahkannya ke footer untuk memastikan konten paro atas dimuat dengan cepat. Ini adalah praktik yang baik untuk mendaftarkan skrip terlebih dahulu sebelum mengantrekannya, karena ini memungkinkan orang lain untuk membatalkan pendaftaran skrip Anda melalui pegangan di plugin mereka sendiri, tanpa mengubah kode inti plugin Anda. Selain itu, jika pegangan skrip terdaftar terdaftar dalam larik dependensi skrip lain yang telah diantrekan, skrip tersebut akan secara otomatis dimuat sebelum memuat skrip enqueued yang disorot.

Kesalahan Umum No. 3: Menghindari Tema Anak dan Memodifikasi File Inti WordPress

Selalu buat tema anak jika Anda berencana untuk memodifikasi tema. Beberapa pengembang akan membuat perubahan pada file tema induk hanya untuk mengetahui setelah peningkatan ke tema bahwa perubahan mereka telah ditimpa dan hilang selamanya.

Untuk membuat tema anak, tempatkan file style.css di subdirektori folder tema anak, dengan konten berikut:

 /* Theme Name: Twenty Sixteen Child Theme URI: http://example.com/twenty-fifteen-child/ Description: Twenty Fifteen Child Theme Author: John Doe Author URI: http://example.com Template: twentysixteen Version: 1.0.0 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready Text Domain: twenty-sixteen-child */

Contoh di atas membuat tema anak berdasarkan tema WordPress default, Twenty Sixteen . Baris terpenting dari kode ini adalah baris yang berisi kata "Templat" yang harus cocok dengan nama direktori tema induk tempat Anda mengkloning anaknya.

Prinsip yang sama berlaku untuk file inti WordPress: Jangan mengambil rute mudah dengan memodifikasi file inti. Lakukan sedikit upaya ekstra dengan menggunakan fungsi dan filter WordPress yang dapat dicolokkan untuk mencegah perubahan Anda ditimpa setelah peningkatan WordPress. Fungsi yang dapat dipasang memungkinkan Anda mengganti beberapa fungsi inti, tetapi metode ini perlahan dihapus dan diganti dengan filter. Filter mencapai hasil akhir yang sama dan disisipkan di akhir fungsi WordPress untuk memungkinkan outputnya dimodifikasi. Triknya adalah selalu membungkus fungsi Anda dengan if ( !function_exists() ) saat menggunakan fungsi yang dapat dicolokkan karena banyak plugin yang mencoba mengganti fungsi yang dapat dipasang yang sama tanpa pembungkus ini akan menghasilkan kesalahan fatal.

Kesalahan Umum No. 4: Nilai Hardcoding

Seringkali terlihat lebih cepat untuk hanya meng-hardcode nilai (seperti URL) di suatu tempat dalam kode, tetapi waktu yang dihabiskan untuk men-debug dan memperbaiki masalah yang muncul sebagai akibat dari ini jauh lebih besar. Dengan menggunakan fungsi yang sesuai untuk menghasilkan output yang diinginkan secara dinamis, kami sangat menyederhanakan pemeliharaan dan debugging kode kami selanjutnya. Misalnya, jika Anda memigrasikan situs Anda dari lingkungan pengujian ke produksi dengan URL hardcode, tiba-tiba Anda akan melihat situs Anda tidak berfungsi. Inilah sebabnya mengapa kita harus menggunakan fungsi, seperti yang tercantum di bawah ini, untuk menghasilkan jalur dan tautan file:

 // Get child theme directory uri stylesheet_directory_uri(); // Get parent theme directory get_template_directory_uri(); // Retrieves url for the current site site_url();

Contoh buruk lainnya dari hardcoding adalah saat menulis kueri khusus. Misalnya, sebagai tindakan keamanan, kami mengubah awalan datatable WordPress default dari wp_ menjadi sesuatu yang sedikit lebih unik, seperti wp743_ . Kueri kami akan gagal jika kami memindahkan instalasi WordPress, karena awalan tabel dapat berubah di antara lingkungan. Untuk mencegah hal ini terjadi, kita dapat mereferensikan properti tabel dari kelas wpdb :

 global $wpdb; $user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );

Perhatikan bagaimana saya tidak menggunakan nilai wp_users untuk nama tabel, tetapi sebaliknya, saya membiarkan WordPress menyelesaikannya. Menggunakan properti ini untuk menghasilkan nama tabel akan membantu memastikan bahwa kami mengembalikan hasil yang benar.

Kesalahan Umum No. 5: Tidak Menghentikan Situs Anda Terindeks

Mengapa saya tidak ingin mesin pencari mengindeks situs saya? Pengindeksan bagus, bukan? Nah, ketika membangun sebuah situs web, Anda tidak ingin mesin pencari mengindeks situs Anda sampai Anda selesai membangunnya dan telah membuat struktur permalink. Selain itu, jika Anda memiliki server pementasan tempat Anda menguji peningkatan situs, Anda tidak ingin mesin pencari seperti Google mengindeks halaman duplikat ini. Ketika ada beberapa bagian dari konten yang tidak dapat dibedakan, sulit bagi mesin pencari untuk memutuskan versi mana yang lebih relevan dengan permintaan pencarian. Mesin pencari dalam kasus seperti itu akan menghukum situs dengan konten duplikat, dan situs Anda akan menderita dalam peringkat pencarian sebagai akibat dari ini.

Seperti yang ditunjukkan di bawah ini, Pengaturan Membaca WordPress memiliki kotak centang yang bertuliskan "Harang mesin pencari untuk mengindeks situs ini", meskipun ini memiliki catatan penting di bawahnya yang menyatakan bahwa "Terserah mesin pencari untuk menghormati permintaan ini".

Pengaturan Membaca WordPress

Ingatlah bahwa mesin pencari sering tidak memenuhi permintaan ini. Oleh karena itu, jika Anda ingin secara andal mencegah mesin telusur mengindeks situs Anda, edit file .htaccess Anda dan masukkan baris berikut:

 Header set X-Robots-Tag "noindex, nofollow"

Kesalahan Umum No. 6: Tidak Memeriksa Apakah Plugin Aktif

Mengapa saya harus memeriksa apakah ada fungsi plugin jika plugin saya selalu diaktifkan? Yang pasti, 99% plugin Anda akan aktif. Namun, bagaimana dengan 1% dari waktu yang karena alasan tertentu telah dinonaktifkan? Jika dan ketika ini terjadi, situs web Anda mungkin akan menampilkan beberapa kesalahan PHP yang buruk. Untuk mencegahnya, kita dapat memeriksa apakah plugin tersebut aktif sebelum kita memanggil fungsinya. Jika fungsi plugin dipanggil melalui front-end, kita perlu menyertakan pustaka plugin.php untuk memanggil fungsi is_plugin_active() :

 include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); if ( is_plugin_active( 'plugin-folder/plugin-main-file.php' ) ) { // Run plugin code }

Teknik ini biasanya cukup dapat diandalkan. Namun, mungkin ada kasus di mana penulis telah mengubah nama direktori plugin utama. Metode yang lebih kuat adalah memeriksa keberadaan kelas di plugin:

 if( class_exists( 'WooCommerce' ) ) { // The plugin WooCommerce is turned on }

Penulis cenderung tidak mengubah nama kelas plugin, jadi saya biasanya merekomendasikan menggunakan metode ini.

Kesalahan Umum No. 7: Memuat Terlalu Banyak Sumber Daya

Mengapa kita harus selektif dalam memuat sumber daya plugin untuk halaman? Tidak ada alasan yang sah untuk memuat gaya dan skrip untuk sebuah plugin jika plugin tersebut tidak digunakan pada halaman yang telah dinavigasi pengguna. Dengan hanya memuat file plugin bila diperlukan, kami dapat mengurangi waktu pemuatan halaman kami, yang akan menghasilkan pengalaman pengguna akhir yang lebih baik. Ambil, misalnya, situs WooCommerce, di mana kami hanya ingin plugin dimuat di halaman belanja kami. Dalam kasus seperti itu, kami dapat secara selektif menghapus file apa pun agar tidak dimuat di semua halaman situs lain untuk mengurangi kembung. Kita dapat menambahkan kode berikut ke file functions.php tema atau plugin:

 function load_woo_scripts_styles(){ if( function_exists( 'is_woocommerce' ) ){ // Only load styles/scripts on Woocommerce pages if(! is_woocommerce() && ! is_cart() && ! is_checkout() ) { // Dequeue scripts. wp_dequeue_script('woocommerce'); wp_dequeue_script('wc-add-to-cart'); wp_dequeue_script('wc-cart-fragments'); // Dequeue styles. wp_dequeue_style('woocommerce-general'); wp_dequeue_style('woocommerce-layout'); wp_dequeue_style('woocommerce-smallscreen'); } } } add_action( 'wp_enqueue_scripts', 'load_woo_scripts_styles');

Skrip dapat dihapus dengan fungsi wp_dequeue_script($handle) melalui pegangan yang digunakan untuk mendaftarkannya. Demikian pula, wp_dequeue_style($handle) akan mencegah stylesheet dimuat. Namun, jika ini terlalu sulit untuk Anda terapkan, Anda dapat menginstal Plugin Organizer yang menyediakan kemampuan untuk memuat plugin secara selektif berdasarkan kriteria tertentu, seperti jenis posting atau nama halaman. Sebaiknya nonaktifkan plugin caching apa pun, seperti W3Cache, yang mungkin telah Anda aktifkan untuk menghentikan Anda dari keharusan me-refresh cache terus-menerus untuk mencerminkan setiap perubahan yang telah Anda buat.

Kesalahan Umum No. 8: Menjaga Bilah Admin

Tidak bisakah saya membiarkan Bilah Admin WordPress terlihat untuk semua orang? Ya, Anda dapat mengizinkan pengguna Anda mengakses halaman admin. Namun, halaman ini sangat sering tidak terintegrasi secara visual dengan tema pilihan Anda dan tidak memberikan integrasi yang mulus. Jika Anda ingin situs Anda terlihat profesional, Anda harus menonaktifkan Bilah Admin dan menyediakan halaman pengelolaan akun front-end Anda sendiri:

 add_action('after_setup_theme', 'remove_admin_bar'); function remove_admin_bar() { if (!current_user_can('administrator') && !is_admin()) { show_admin_bar(false); } }

Kode di atas, ketika disalin ke file functions.php tema Anda hanya akan menampilkan Bilah Admin untuk administrator situs. Anda dapat menambahkan peran atau kemampuan pengguna WordPress apa pun ke dalam fungsi current_user_can($capability) untuk mengecualikan pengguna agar tidak melihat bilah admin.

Kesalahan Umum No. 9: Tidak Menggunakan Filter GetText

Saya dapat menggunakan CSS atau JavaScript untuk mengubah label tombol, apa yang salah dengan itu? Ya, Anda bisa. Namun, Anda menambahkan kode yang berlebihan dan waktu ekstra untuk merender tombol, saat Anda dapat menggunakan salah satu filter paling praktis di WordPress, yang disebut gettext . Sehubungan dengan textdomain plugin , pengidentifikasi unik yang memastikan WordPress dapat membedakan antara semua terjemahan yang dimuat, kita dapat menggunakan filter gettext untuk memodifikasi teks sebelum halaman dirender. Jika Anda mencari kode sumber untuk fungsi load_plugin_textdomain($domain) , itu akan memberi Anda nama domain yang kami perlukan untuk menimpa teks yang dimaksud. Setiap plugin yang memiliki reputasi baik akan memastikan bahwa textdomain untuk sebuah plugin diatur pada inisialisasi plugin. Jika ada teks dalam tema yang ingin Anda ubah, cari baris kode load_theme_textdomain($domain) . Menggunakan WooCommerce sekali lagi sebagai contoh, kita dapat mengubah teks yang muncul untuk judul “Produk Terkait”. Masukkan kode berikut ke file functions.php tema Anda:

 function translate_string( $translated_text, $untranslated_text, $domain ) { if ( $translated_text == 'Related Products') { $translated_text = __( 'Other Great Products', 'woocommerce' ); } return $translated_text; } add_filter( 'gettext', 'translate_string', 15, 3 );

Kait filter ini diterapkan ke teks yang diterjemahkan oleh fungsi internasionalisasi __() dan _e() , selama textdomain disetel melalui fungsi yang disebutkan di atas.

 _e( 'Related Products', 'woocommerce' );

Cari plugin Anda untuk fungsi internasionalisasi ini untuk melihat string lain yang dapat Anda sesuaikan.

Kesalahan Umum No. 10: Menjaga Permalinks Default

Secara default, WordPress menggunakan string kueri dengan ID postingan untuk mengembalikan konten yang ditentukan. Namun, ini tidak ramah pengguna dan pengguna dapat menghapus bagian terkait dari URL saat menyalinnya. Lebih penting lagi, permalink default ini tidak menggunakan struktur ramah mesin pencari. Mengaktifkan apa yang kami sebut permalink "cantik" akan memastikan URL kami berisi kata kunci yang relevan dari judul posting untuk meningkatkan kinerja di peringkat mesin pencari. Ini bisa menjadi tugas yang cukup menakutkan karena harus secara retrospektif memodifikasi permalink Anda, terutama jika situs Anda telah berjalan untuk jangka waktu yang signifikan, dan Anda memiliki ratusan posting yang sudah diindeks oleh mesin pencari. Jadi setelah Anda menginstal WordPress, pastikan Anda segera mengubah struktur permalink Anda menjadi sesuatu yang sedikit lebih ramah mesin pencari daripada sekadar ID posting. Saya biasanya menggunakan nama posting untuk sebagian besar situs yang saya buat, tetapi Anda dapat menyesuaikan permalink ke format apa pun yang Anda suka menggunakan tag struktur permalink yang tersedia.

Pengaturan Permalink WordPress

Kesimpulan

Artikel ini sama sekali bukan daftar lengkap kesalahan yang dibuat oleh pengembang WordPress. Namun, jika ada satu hal yang harus Anda ambil dari artikel ini, Anda tidak boleh mengambil jalan pintas (dan itu berlaku di platform pengembangan apa pun, tidak hanya di WordPress!). Waktu yang dihemat sekarang oleh praktik pemrograman yang buruk akan kembali menghantui Anda nanti. Jangan ragu untuk berbagi dengan kami beberapa kesalahan yang telah Anda buat di masa lalu—dan yang lebih penting, pelajaran apa pun yang diperoleh—dengan meninggalkan komentar di bawah.

Terkait: Lima Kesalahan Pengembangan WordPress Terburuk Saya