Indonesian (Bahasa Indonesia) translation by Ridho Aulia (you can also view the original English article)
Dalam pemrograman, inisialisasi data adalah penting karena ini adalah tempat kita menyiapkan prasyarat untuk aplikasi seperti atributnya, file dan data yang diperlukan, koneksi ke database, dan sebagainya.
WordPress sendiri memiliki prosedur inisialisasi yang didefinisikan dengan baik. Melalui siklus hidup halaman, WordPress memicu sejumlah tindakan yang banyak yang telah kita tutup di artikel sebelumnya. Untuk itu, ia menyediakan satu set kait inisialisasi yang secara alami digunakan untuk menginisialisasi aplikasi sebelum menjalankan fungsi utamanya.
Sebagai pengembang plugin dan tema, penting untuk memahami kasus penggunaan dan kesalahan umum dari kait inisialisasi ini, untuk membangun aplikasi yang berkualitas.
Pada artikel ini, kita akan melihat pentingnya kaitan inisialisasi WordPress dan bagaimana penggunaannya dalam berbagai skenario.
Pengantar Kait Inisialisasi
WordPress menyediakan beragam kait yang dapat digunakan dalam pengembangan plugin dan tema.
Dalam permintaan halaman yang khas, semua kaitan dilakukan dieksekusi dalam urutan tertentu. Secara khusus, semua kait dieksekusi setelah aplikasi WordPress inti melengkapi proses pemuatannya.
Jadi kait inisialisasi terutama digunakan untuk, Anda dapat menebaknya, menginisialisasi proses dalam plugin dan tema. Mari kita lihat kait init
yang tersedia di WordPress, sesuai urutan pelaksanaannya:
- Init berjalan setelah WordPress selesai loading tapi sebelum header apapun yang dikirim. Umumnya, ini digunakan oleh plugin untuk menginisialisasi proses mereka.
- widgets_init digunakan untuk mendaftarkan widget sidebar aplikasi. Fungsi
register_widget
dieksekusi dalam kait ini. - admin_init dijalankan sebagai tindakan pertama, ketika pengguna mengakses bagian admin WordPress. Secara umum, ini digunakan untuk menginisialisasi pengaturan khusus untuk area admin.
admin_bar_init
, yang dijalankan setelah bilah administrasi diinisialisasi. WordPress Codex tidak memberikan penjelasan tentang kait ini, dan tidak banyak plugin menggunakan kait ini. Anda juga dapat meninjau seluruh proses eksekusi kait tindakan WordPress di Codex.
WordPress mengeksekusi setiap hook dalam urutan tertentu (yang dapat Anda lihat di Codex). Karena itu, penting untuk mempertimbangkan urutan kejadian dalam menggunakan setiap kait tindakan. Pertimbangkan skenario berikut untuk mengidentifikasi perbedaan.
Mendefinisikan admin_init
Inside The init
Hook
Jika perlu, kita dapat mendefinisikan kait WordPress di dalam kait lain. Dalam permintaan tipikal, kait init
berjalan sebelum admin_init
hook. Jadi mari kita coba output sesuatu dengan menempatkan admin_init
inside init
hook:
add_action( 'init', 'test_init'); function test_init(){ add_action( 'admin_init', 'test_admin_init'); } function test_admin_init() { echo "Admin Init Inside Init"; }
Setelah mengeksekusi kode ini, kita akan mendapatkan output yang diinginkan menggunakan pernyataan echo
Mendefinisikan init
Inside The admin_init
Hook
Mari kita lihat kode dan output dari skenario ini di mana hook sebelumnya didefinisikan di dalam hook yang datang kemudian dalam urutan eksekusi.
add_action( 'admin_init', 'test_admin_init'); function test_admin_init() { add_action( 'init', 'test_init'); } function test_init() { echo "Init Inside Admin Init"; }
Di sini, kita tidak akan mendapatkan keluaran apa pun - ini diharapkan - karena kait init
dijalankan sebelum admin_init
hook, dan karenanya tidak tersedia setelah mendefinisikan kait admin_init
.
Seperti yang Anda lihat, sangat penting untuk memahami prosedur pelaksanaan kait untuk membangun plugin yang sukses. Urutan kejadian penting untuk semua kait di WordPress.
Menjelajahi Hook init
dan admin_init
Di antara kait init, init
dan admin_init
perlu ditelusuri karena kedua kait ini digunakan secara luas di banyak plugin. Penggunaan kait inisialisasi lainnya sangat mudah dibandingkan dengan dua kait ini.
Dengan demikian, kita akan melihat fungsionalitas kait init
dan admin_init
.
Init
hook dieksekusi di setiap permintaan untuk both frontend situs WordPress serta backend.
Kait admin_init
dieksekusi setelah bagian admin menyelesaikan proses pemuatannya. Jadi kail ini juga dijalankan pada setiap dan setiap permintaan halaman admin. Pengguna harus masuk untuk memanfaatkan kait ini.
Karena keduanya kait ini dijalankan pada setiap permintaan, kami harus merencanakan fungsi dalam pelaksanaan ini kait sesuai seperti yang ia sangat dapat berdampak performa situs.
Cara Menggunakan init
Hooks
Secara umum, kait inisialisasi tersedia di sebagian besar plugin WordPress yang ada, dan mereka penting untuk mengelola pemrosesan mereka.
WordPress tidak mendefinisikan apa yang harus kita dan apa yang tidak boleh kita sertakan; Oleh karena itu, pengembang dapat membuat kesalahan kecil yang, pada gilirannya, dapat mengakibatkan penurunan kinerja yang sangat besar. Pada bagian ini, kita akan melihat bagaimana kita dapat menggunakan kait init
dan admin_init
secara efektif.
Mari kita lihat praktik terbaik dalam menggunakan kait init.
Init hook
- Registering custom post types - WordPress merekomendasikan penggunaan kait
init
untuk mendaftarkan jenis kiriman khusus baru. - Initializing your plugin configurations and settings - Konfigurasi dan pengaturan plugin perlu didefinisikan dalam setiap dan setiap permintaan dan karenanya merupakan praktik yang baik untuk memasukkannya ke dalam kait ini.
- Accessing user submitted data (using $_GET and $_POST) - Kami dapat mencegat data yang dikirimkan pengguna tanpa tindakan apa pun, tetapi disarankan untuk menggunakan kait
init
karena menjamin eksekusi di setiap permintaan. - Adding new rewrite rules - Kita dapat menetapkan aturan penulisan ulang baru menggunakan kait
init
, tetapi perlu diingat bahwa aturan baru ini hanya akan berlaku setelah kami menyapu aturan penulisan ulang. - Add or remove custom actions - Plugin berisi banyak tindakan khusus untuk memperluas fungsi. Akan ada skenario di mana kita perlu menambahkan tindakan kustom baru serta menghapus yang sudah ada. Dalam kesempatan seperti itu, sangat penting untuk mengimplementasikan aktivitas-aktivitas tersebut dalam
init
hook. - Load plugin text domain - WordPress menawarkan dukungan multi-bahasa dan karenanya kami diizinkan memuat file yang berisi string yang diterjemahkan. Ini juga harus ditempatkan di dalam
init
hook.
Admin_init
hook
- Access control - ini sangat penting untuk memeriksa perizinan login pengguna sebelum mengizinkan setiap pengguna akses ke spesifik seperangkat fitur atau fungsi.
admin_init
adalah tindakan pertama berjalan di admin area sehingga kita dapat menggunakannya untuk mengelola kontrol akses. - Adding new setting - Kita dapat menggunakan kait ini untuk menambahkan halaman pengaturan atau pengaturan baru ke panel pengaturan WordPress yang ada.
Ada banyak kemungkinan implementasi lain dengan kait ini, tetapi fitur-fitur tersebut memiliki kaitnya sendiri dan tidak perlu menggunakan kait inisialisasi.
Kesalahan Umum Menggunakan Kait Inisialisasi
Seringkali, kita menemukan skenario di mana pengembang salah memahami penggunaan kait inisialisasi. Penggunaan kait yang tidak benar dapat menyebabkan masalah kinerja yang serius (dan juga kualitas plugin yang rendah).
Mari kita kenali kesalahan umum dan cara menghindarinya:
- Flushing rewrite rules - Ini adalah operasi intensif sumber daya tempat semua aturan penulisan ulang disiram dan disusun ulang untuk menambah yang baru dan menghapus aturan yang tidak perlu. Banyak pengembang menyiram aturan penulisan ulang di dalam tindakan
init
dan akhirnya menciptakan overhead kinerja yang tidak perlu dalam setiap permintaan. Kita harus menyiapkan cara untuk membilas aturan penulisan ulang secara manual menggunakan tombol atau menghapus aturan pada aktivitas yang jarang terjadi seperti menyimpan pengaturan plugin. - Accessing the database - Ini adalah suatu keharusan untuk mengakses database untuk menyediakan berbagai fungsionalitas, tetapi penting untuk mencegah panggilan database yang tidak perlu di dalam kait inisialisasi ketika dieksekusi pada setiap permintaan. Untuk itu, sangat ideal untuk menetapkan kait basis data dalam kait fungsionalitas khusus untuk menghindari overhead kinerja utama.
- Executing upgrade routines - Plugin perlu memiliki rutinitas peningkatan untuk meningkatkan fitur-fiturnya untuk versi baru. Umumnya, pengembang menggunakan kait init untuk memeriksa versi dan pengaturan plugin sebelum menjalankan proses pemutakhiran. Kita dapat membiarkan pengguna memperbarui plugin dengan menyediakan layar khusus alih-alih memeriksa setiap permintaan secara otomatis.
- Using init hooks instead of functionality specific hooks - Ini adalah kesalahan paling umum yang dilakukan oleh banyak pengembang. Ada banyak kait di WordPress yang menargetkan fungsionalitas unik dan berbeda. Sangat penting untuk menggunakan kait fungsionalitas khusus untuk menghindari konflik dan membuat kode dapat diperluas. Kait seperti
init
danadmin_init
dapat digunakan daripada kait spesifik sehingga pengembang cenderung menggunakannya tanpa memiliki pengetahuan tentang efek penuh mereka. Beberapa skenario umum dimana pengembang menggunakan kaitinit
danadmin_init
bukan kait yang disarankan adalah sebagai berikut:- admin_menu - Kita dapat menambahkan halaman menu menggunakan fungsi
add_menu_page
. Disarankan untuk menggunakan kaitadmin_menu
untuk membuat halaman admin. Tetapi banyak pengembang menggunakanadmin_init
hook karena dijalankan setelahadmin_menu
hook. - wp_enqueue_scripts - Cara yang disarankan untuk menambahkan gaya dan skrip adalah dengan menggunakan kait
wp_enqueue_scripts
. Tetapi banyak pengembang menggunakanwp_enqueue_script
di dalam kaitinit
untuk memuat skrip dan gaya.
- admin_menu - Kita dapat menambahkan halaman menu menggunakan fungsi
Ada sejumlah situasi serupa di mana pengembang menggunakan init hook umum alih-alih fungsi spesifik hook dan itu harus dicegah sedapat mungkin.
Moving forward dengan Kait Inisialisasi
Kait inisialisasi WordPress memainkan bagian penting dalam pengembangan plugin dan tema. Banyak pengembang menyalahgunakan kait menciptakan overhead kinerja yang tidak perlu. Pada artikel ini, kita membahas penggunaan kaitan yang benar serta kesalahan umum dan bagaimana cara menghindarinya.
Sekarang kita dapat menerapkan teknik yang sama untuk memasang pengait khusus. Banyak plugin tingkat lanjut menggunakan kait tindakan mereka sendiri untuk menjadikannya ekstensi. Untuk plugin semacam itu, kita dapat mendefinisikan kait init khusus plugin untuk memungkinkan pengembang fokus pada tugas inisialisasi pada kait yang telah ditentukan alih-alih menggunakannya di semua tempat.
Jangan ragu untuk membagikan pengalaman Anda tentang penggunaan kait init yang tepat serta kesalahan dalam menggunakan kait inisialisasi. Berharap untuk melihat apa yang harus Anda bagikan dalam komentar!