WordPress Hooks: Panduan Penting
Diterbitkan: 2021-01-26Hooks WordPress adalah alat bermanfaat yang dirancang untuk pengembang yang membuat plugin dan tema WordPress. Faktanya, mereka sangat berguna sehingga pembuat WordPress menggunakannya di seluruh inti WordPress. Tapi apa sebenarnya hook WordPress dan bagaimana Anda menggunakannya?
Dalam panduan ini, kita akan melihat cara menggunakan hook WordPress secara efektif dan mempelajari dasar-dasarnya. Mari selami!
Apa itu Hooks di WordPress?
Singkatnya, hook WordPress adalah potongan kode WordPress yang mengambil dan mengeksekusi potongan kode WordPress lainnya. Mereka pada dasarnya memungkinkan pengembang untuk melompat-lompat di antara berbagai file dengan mudah di tema dan plugin mereka.Hook WordPress dikemas dalam inti WordPress. Setiap tema dan plugin juga menggunakannya.
Kait WordPress Dijelaskan
Tujuan utama dari hook di WordPress adalah untuk memungkinkan pengembang mengubah secara mendasar bagaimana sistem manajemen konten beroperasi tanpa mengubah file inti WordPress. Karena WordPress adalah open-source, Anda dapat mengacaukan file inti, tetapi ada kemungkinan 99% Anda akan menyesalinya dalam beberapa menit.
Meskipun mungkin agak sulit untuk dipahami oleh pengembang yang lebih baru, sangat penting untuk mempelajari cara kerja WordPress hook. Seringkali, kebingungan muncul karena terminologi yang digunakan WordPress. Meskipun aksi di belakang layar sangat mirip dengan banyak bahasa pemrograman, kata-katanya berbeda. Seringkali paling mudah untuk mempelajari cara membuat dan menggunakannya dengan terlebih dahulu mengikuti contoh, membaca tentangnya, dan kemudian berlatih.
Untuk menulis hook WordPress, Anda harus bisa membuat kode dalam PHP. PHP adalah bahasa yang mendasari sebagian besar WordPress. Anda dapat menganggap hook sebagai bukaan yang dapat digunakan oleh fungsi PHP lainnya. Anda juga dapat menganggap hook WordPress sebagai callback yang melakukan sesuatu pada data atau tampilan sebelum pengguna melihat data.

Dua Jenis Hooks WordPress
Ada dua jenis utama hook WordPress yang perlu Anda pelajari:
- Kait tindakan WordPress
- Kait filter WordPress
Mari kita lihat kedua jenis hook WordPress ini dan perbedaannya. Kami juga akan menjelajahi beberapa contoh kait tindakan dan kait filter untuk menggambarkan penggunaannya dengan lebih baik.
Perbedaan Antara Kait Tindakan WordPress dan Kait Filter
Jika Anda telah menghabiskan waktu untuk meninjau kodeks WordPress, Anda mungkin pernah melihat istilah-istilah ini dilontarkan dengan santai. Sayangnya, salah satu kelemahan codex adalah bahwa codex itu ditulis oleh pengembang sendiri. Sebagai efek samping, beberapa perbedaan penting yang mungkin terlihat jelas bagi mereka, tidak jelas bagi mereka yang tidak begitu akrab dengan kode inti WordPress.
Cara termudah untuk membedakan antara dua jenis kait WordPress adalah bahwa kait tindakan tidak mengembalikan nilai, sedangkan kait filter mengembalikan nilai.Bagi mereka yang akrab dengan bahasa pemrograman umum, ini seperti mengatakan bahwa kait tindakan memiliki tipe pengembalian "void", sedangkan kait filter mengembalikan data aktual.
Kait filter dapat dianggap sebagai kait atau acara pra-pemrosesan. Kait filter mungkin memfilter hasil yang dikembalikan dari kueri database agar hanya berisi entri dengan nama belakang "Smith." Kait filter ini harus dipanggil sebelum kueri basis data yang sebenarnya dipanggil, memberi tahu WordPress sebelumnya bahwa itu harus mengambil hasil yang tidak relevan sebelum mengembalikannya.
Kait tindakan WordPress dapat dianggap sebagai mengambil sesuatu melalui kode. Contoh umum dari action hook adalah penyisipan file CSS tambahan ke halaman situs untuk membuatnya tampak berbeda. Ingat, kait mengubah cara data ditampilkan bahkan sebelum dikirimkan ke pengguna. Kait tindakan mengirimkan file CSS baru yang membuat pengalaman pengguna menjadi lebih baik. Proses ini tidak melibatkan pengeditan inti WordPress juga tidak memerlukan pengeditan root web inti situs. Dengan cara ini, kait WordPress dapat mempermudah, bersama dengan plugin, untuk mengelola beberapa situs WordPress.
Kait dan Filter Dijelaskan
Sekarang setelah kita melihat ikhtisar yang lebih abstrak tentang hook dan filter WordPress, mari selami detail yang lebih teknis tentang bagaimana fungsi ini.
Anda dapat menganggap hook WordPress sebagai peristiwa yang terjadi dengan sebuah nama. Contoh salah satu yang terdapat dalam inti WordPress disebut save_post . Dengan kait, kami pada dasarnya mengatakan bahwa ketika save_post dijalankan, kami ingin kait atau filter kami dilampirkan dan dijalankan di sampingnya.
Kami melampirkan apa yang disebut panggilan balik, atau fungsi panggilan balik, ke kait di WordPress. Ini hanyalah cara yang bagus untuk mengatakan bahwa kami meminta WordPress untuk menjalankan kode yang terdapat dalam fungsi yang telah kami buat ketika acara tersebut dipecat yang kami " kaitkan " (seperti save_post dalam contoh kami di atas).
Meskipun cukup mudah untuk menambahkan kait WordPress, seperti yang akan kita bahas nanti, ingatlah bahwa satu panggilan balik yang ditulis dengan tidak benar dapat merusak rantai panggilan balik Anda. Jika ini terjadi, satu tautan yang rusak dalam rantai panggilan balik dapat benar-benar merusak semua kerja keras Anda! Selalu lakukan backup sebelum melakukan perubahan. Manfaatkan plugin cadangan WordPress yang tepercaya sebelum Anda melakukan perubahan apa pun.
Tertarik dengan lebih banyak detail teknis di balik cara kerja kait? Lihat bagian selanjutnya! Kami memiliki penjelasan yang lebih mendalam serta tutorial tentang cara membuat kait tindakan pertama Anda dan kait filter pertama Anda!
Bagaimana Cara Kerja Hooks di WordPress?
Ingat, meskipun ada beberapa perbedaan, kait tindakan dan kait filter di WordPress dapat dilihat sebagian besar sama. Mari kita lihat secara singkat bagaimana kait ini bekerja. Kami akan membahas contoh dan tutorialnya nanti di artikel.
Kedua jenis hook harus didaftarkan ke WordPress sebelum menggunakannya. Ini memberi CMS daftar fungsi untuk dilampirkan ketika ada acara yang dijalankan yang telah kita "kaitkan" dengan kode kita. Juga, pastikan bahwa tindakan terdaftar sebagai tindakan dan filter terdaftar sebagai filter.
Saat menambahkan tindakan, manfaatkan fungsi inti WordPress add_action() . Saat menambahkan filter, gunakan fungsi inti WordPress yang sesuai yang disebut add_filter() . Jika panggilan balik Anda (berfungsi di rantai saat acara atau tindakan Anda dijalankan) tidak mengembalikan data apa pun, Anda harus mendaftarkannya sebagai tindakan. Jika mengembalikan apa yang disebut WordPress sebagai data yang dapat difilter, maka daftarkan sebagai filter.
Apa pun yang Anda tentukan dalam fungsi ini dijalankan saat situs Anda dibuka oleh pengguna. WordPress memiliki generator internal yang menyatukan semua tindakan dan filter ini untuk kita. Ada juga fungsi penghapusan yang sesuai untuk tindakan dan filter. Ini dapat digunakan untuk menghilangkan fungsi dari rantai panggilan balik Anda. Mereka sering terkandung dalam pernyataan bersyarat di WordPress PHP.
Sama seperti fungsi add kami, mereka disebut remove_action() dan remove_filter() .
Bagaimana Cara Membuat Hook di WordPress?
Waktunya akhirnya tiba bagi kita untuk membuat hook pertama kita di WordPress! Ingat bahwa membuat kait melibatkan penambahan kode khusus yang akan ditampilkan dan dirender ke pengguna situs kami.
Perhatikan bahwa setiap kali kami menambahkan kode khusus, kami menambahkan beberapa tingkat risiko keamanan. Itulah mengapa saat ini akan menjadi waktu yang ideal untuk memastikan bahwa Anda memiliki plugin keamanan WordPress yang dapat Anda percayai terpasang dan siap digunakan. Ini dapat membantu dengan ketenangan pikiran dan memperbaiki potensi ancaman ke situs Anda melalui kode khusus yang mungkin memperkenalkan kerentanan baru.
Mari kita lihat bagaimana kita bisa membuat action hook yang sangat sederhana di WordPress. Kemudian kita akan melihat contoh filter hook di CMS.
Bagaimana Cara Membuat Action Hook di WordPress?
Untuk contoh tindakan kita, mari kita lakukan sesuatu yang hampir semua pengembang WordPress perlu lakukan di beberapa titik: sesuaikan konten di halaman login WordPress. Halaman ini sangat umum.
Misalnya, jika Anda mengelola situs WordPress untuk institusi akademik, mereka mungkin meminta Anda untuk mengingatkan siswa agar menggunakan alamat email kampus mereka untuk masuk ke portal WordPress mereka. Kami dapat menambahkan pengingat sederhana di bawah kotak “Nama Pengguna ” dan “Kata Sandi” yang bertuliskan “ Ingat untuk menggunakan email @myuniversity.edu Anda sebagai nama pengguna Anda ” untuk mengurangi panggilan ke departemen TI yang meminta bantuan untuk masuk.
Ini, tentu saja, akan lebih selaras dengan kait tindakan daripada kait filter. Itu karena penyesuaian sederhana, seperti mengedit teks pada halaman login pengguna utama, sebenarnya tidak mengembalikan data apa pun ke filter.
Pertama, kita perlu mencari tahu di mana tepatnya untuk mengaitkan tindakan kita. Dalam kebanyakan kasus, melihat file PHP di mana Anda ingin menambahkan konten bisa sangat mendalam. Melihat file WordPress yang berisi konten login, ada beberapa pemicu tindakan. Dalam contoh pengingat kami kepada siswa untuk menggunakan email institusional mereka, Anda akan melihat kode berikut cukup menarik di file PHP halaman login:
do_action('login_footer');
Fungsi do_action adalah fungsi inti WordPress yang melakukan kait tindakan kami berdasarkan permintaan. Tentu saja, asalkan kita telah mendaftarkan semua fungsi yang ingin kita lampirkan ke hook ini.
Dalam hal ini, "login_footer" adalah pengait yang dibuat sebelumnya oleh tim WordPress. Meskipun built-in, kita masih bisa melampirkan kode kita sendiri ke dalamnya. Secara default, hook ini memuat konten footer halaman login generik. Footer akan menjadi tempat yang ideal untuk teks kita, itulah sebabnya kita memanfaatkan hook bagian halaman ini.
Kita dapat menambahkan fungsi PHP baru ke wp-login.php kita untuk memulai. Yang perlu kita lakukan adalah menampilkan sebaris teks, seperti:
fungsi add_uni_email_reminder() { <p>Ingatlah untuk menggunakan email @myuniversity.edu Anda sebagai nama pengguna Anda!< /p> } do_action('login_footer', 'add_uni_email_reminder');
Dalam hal ini, kita cukup membuat “action” baru di file wp-login.php . Nama fungsi dari kait tindakan (add_uni_email_reminder), tanpa tanda kurung parameter, dapat ditambahkan ke daftar parameter do_action() untuk mendaftarkannya agar dijalankan saat footer dirender berikutnya.

Bagaimana Cara Membuat Kait Filter di WordPress?
Sekarang kita berada di roll! Kami telah mempelajari dasar-dasar hook WordPress dan cara memanfaatkan kekuatannya. Kami bahkan telah melakukan sedikit modifikasi sendiri! Satu-satunya bagian utama yang tersisa adalah berlatih dengan kait filter. Ingat, ini adalah kait yang mengembalikan beberapa jenis data yang mungkin kami filter. Ini sedikit lebih rumit daripada action hook, tetapi sekarang setelah Anda memahami dasar-dasar hook, ini akan menjadi sedikit lebih mudah.
Mari kita mulai dengan kait filter WordPress. Pertama, kita perlu memutuskan filter spesifik apa yang ingin kita tambahkan. Satu item yang dapat diminta klien Anda adalah menyesuaikan fungsionalitas penambahan halaman. Di sinilah pengguna WordPress dapat menambahkan posting blog baru. Untuk membuatnya sesederhana mungkin, misalkan kita ingin mengedit teks “Enter title here” yang terdapat pada text box “Title”. Katakanlah kita ingin membuatnya lebih spesifik dan mengatakan “Masukkan Judul Postingan Blog” sebagai gantinya.
Perhatikan bahwa dalam contoh kait filter kami di bawah ini, fungsi kami memiliki parameter. Selain itu, eksekusi sebenarnya dari filter kami memiliki parameter "prioritas" tambahan. Anda juga akan melihat bahwa fungsi sebenarnya yang kami gunakan untuk mendaftarkan hook kami sama persis dengan contoh "action" kami, add_action . Cara kita mengetahui bahwa fungsi ini adalah pengait filter daripada pengait tindakan adalah bahwa ketika itu benar-benar dijalankan, fungsi yang dijalankan seperti yang dapat kita lihat dalam kode inti WordPress adalah apply_filters( 'enter_title_here', __( 'Enter title here' ), $posting ); . Kami menerapkan filter seperti yang disarankan oleh nama fungsi.
Ini sering menjadi titik tersandung bagi pengguna baru. Ini benar-benar hanya masalah kata-kata kecil; setelah Anda melewati itu, menguraikan perbedaan antara kait dan filter di WordPress menjadi sangat sederhana! Tanpa kata perpisahan lebih lanjut, mari selami mengubah teks placeholder itu!
function our_new_title_here( $title ) { $title = __( 'Masukkan Judul Postingan Blog', 'domain teks' ); kembali $judul; } add_action( 'enter_title_here', 'our_new_title_here', 10 );
Anda mungkin bertanya-tanya apa arti "10" dalam fungsi add_action kami. Mudah-mudahan, Anda memahami dua parameter pertama; yang pertama adalah hook WordPress default, dan yang kedua adalah nama fungsi dan filter yang kita lampirkan ke enter_title_here . "10" adalah tingkat prioritas yang kami tetapkan untuk filter ini.
Ingat, tindakan dan filter di WordPress adalah serangkaian "panggilan balik" berjenjang atau fungsi khusus yang dijalankan. Ini diberikan tingkat prioritas yang berbeda. Kami akan mengeksplorasi apa arti angka yang berbeda, parameter apa yang dapat diterima, dll., nanti. Namun, penting untuk dipahami bahwa 10 adalah tingkat prioritas "normal" default WordPress untuk filter dan tindakan untuk saat ini.
Di mana WordPress Hooks Disimpan?
Anda mungkin bertanya-tanya di mana WordPress dapat menyimpan semua tindakan dan filter ini. Kami telah mereferensikan inti WordPress, tetapi ini hanyalah lokasi tindakan dan filter bawaan dan fungsi yang melekat padanya. Pengguna WordPress berpengalaman mungkin tahu bahwa kait ini tidak disimpan di database mana pun yang dibuat saat WordPress diinstal.
Salah satu fitur paling unik dari tindakan dan filter di WordPress adalah mereka tidak benar-benar "disimpan" di mana pun! Setelah kami menambahkan tindakan atau filter, tindakan atau filter tersebut dapat diakses secara global di seluruh situs WordPress kami. Jika Anda berpikir tidak mungkin menyimpannya di mana pun , Anda benar!
Meskipun strukturnya cukup rumit, ada satu variabel PHP tempat semua tindakan dan filter kita disimpan. Variabel ini bersifat global dan disebut $wp_filter . Jangan main-main dengan variabel ini secara langsung!
Bagi mereka yang tertarik dengan detail teknis, variabel $wp_filter ini adalah array PHP. Ini memegang serangkaian besar objek yang bertipe WP_HOOK . Di dalam file PHP yang dapat Anda baca di wp-includes/class-wp-hook.php , ada satu metode penting: this->apply_filters() . Metode inilah yang mengaktifkan semua panggilan balik dan "mendaftarkan" filter dan kait khusus kami. Ini pada dasarnya adalah roti dan mentega dari kait WordPress.
Untuk memanfaatkan sepenuhnya fitur WordPress yang luar biasa ini, kita perlu mengetahui beberapa pengait WordPress yang paling umum. Tidak terlihat lagi dari lembar contekan kami di bawah ini!
Daftar Hooks WordPress: Cheatsheet WordPress Hooks
Mari kita mulai dengan sedikit realisme: tidak mungkin kita bisa membahas setiap kait di WordPress. Untungnya, beberapa peneliti telah menyusun daftar (secara harfiah) setiap tindakan dan filter, bagi mereka yang penasaran. Anda dapat melihat daftar lengkap semua hook WordPress di sini, tetapi berhati-hatilah untuk melihat peringatan keamanan terkait setiap hook. Anda tidak boleh menggunakan apa pun yang diberi label sebagai "usang". Ini berarti bahwa mereka mungkin atau mungkin tidak didukung di WordPress versi paling modern, tetapi bagaimanapun juga, mereka tidak akan segera didukung.
Kemungkinan besar, 90% dari waktu, Anda hanya akan tertarik pada beberapa kait WordPress. Berikut adalah lima tindakan dan filter paling populer di WordPress, beserta penjelasan singkatnya!
- add_setting() – Seperti namanya, tindakan ini menambah pengaturan WordPress Anda. Anda mungkin tidak ingin menyertakan tindakan ini pada halaman yang menghadap pengguna mana pun, tetapi tindakan ini bisa menjadi penyelamat jika Anda memodifikasi halaman administratif.
- apply_filters() – Apakah yang ini terlihat familier? Seharusnya, karena kami menggunakannya sebelumnya! Ini segera memanggil seluruh rantai panggilan balik kami yang terkait dengan sebuah kait.
- esc_attr() – Nama yang satu ini adalah singkatan dari "escape HTML atribut". Melarikan diri dari HTML berarti kita menggunakan kode ASCII untuk simbol HTML. Ini hampir secara universal digunakan untuk "membersihkan input" ke halaman. Dengan kata lain, tindakan ini akan sangat diinginkan untuk dilampirkan ke hook run ketika pengguna mengirimkan formulir. Ini mencegah pengguna menyerang situs Anda dengan serangan skrip lintas situs pada khususnya.
- the_content() – Nama hook ini mungkin terdengar sederhana, karena memang begitu! Itu hanya mengambil konten dari posting saat ini yang sedang dilihat. Ini sangat ideal jika Anda mengizinkan pengguna untuk mengekspor konten kiriman. Misalnya, beberapa situs menawarkan pengguna Premium kemampuan untuk mengekspor artikel apa pun sebagai file PDF.
- wp_nav_menu() – Singkatan dari “WordPress Navigation Menu”, hook ini adalah action hook. Ini digunakan untuk hanya menampilkan menu navigasi utama yang Anda buat saat pertama kali membuat situs WordPress. Ini bagus jika Anda memiliki halaman yang memiliki tata letak yang sangat berbeda dan ingin menampilkan menu Anda di area alternatif.
Dalam Urutan Apa WordPress Hooks Dijalankan? Urutan Pengaktifan Hooks WordPress
Sayangnya, urutan pasti yang dijalankan WordPress hooks tidak sejelas yang Anda bayangkan. Ini karena volume kait yang tipis. Seorang peneliti melakukan analisis lanjutan untuk menghitung jumlah hook yang berjalan dan urutannya ketika halaman beranda situs WordPress dikunjungi.
Seolah-olah ini tidak cukup rumit, beberapa kait WordPress memiliki kait yang melekat padanya dengan berbagai prioritas! Anda dapat melihat ratusan hook yang dijalankan dan pesanan mereka di posting ini tentang urutan pengaktifan hook WordPress. Perhatikan saja: Anda tidak boleh mencoba menjalankan analisis ini pada apa pun kecuali server uji di mana Anda dapat kehilangan segalanya!
Meskipun kita tidak bisa berbuat banyak tentang urutan hook default, kita bisa melakukan sesuatu tentang urutan hook yang kita tentukan. Di sinilah prioritas hook masuk. Kami menyinggungnya sebelumnya.
Bagaimana Prioritas di WordPress Hooks Bekerja?
Seperti yang kami sebutkan, tingkat prioritas default yang ditetapkan untuk sebuah hook oleh WordPress adalah “10”. Apa pun yang Anda putuskan untuk dijadikan prioritas, ingatlah bahwa nilainya harus bilangan bulat positif. Ini berarti, sayangnya, “0” bukanlah nilai yang valid. Juga, -100 tidak akan valid, dan 0,5 tidak akan valid. Namun, 1 akan berfungsi, seperti halnya 1111.
Secara umum, semakin kecil bilangan bulat, semakin rendah prioritasnya. Jika Anda ingin sebuah hook dijalankan setelah sebuah hook, Anda menetapkan nilai default 10, misalnya, Anda dapat membuat prioritasnya menjadi 9. Hook dengan prioritas paling rendah Anda dapat diberi 1. Selain itu, hook WordPress dapat diberikan dengan cara yang sama. prioritas. Ini jika Anda tidak peduli urutan apa yang mereka jalankan.
Penutup: Kait di WordPress
Salah satu batu sandungan terbesar bagi pengembang WordPress baru adalah betapa tidak terstandarisasinya banyak informasi ini. Meskipun Anda akan menemukan banyak blog teknis, banyak yang membahas topik yang sempit, dan mungkin sulit untuk digabungkan.
Cara terbaik adalah mulai bereksperimen dengan kait tindakan WordPress dan kait filter di situs Anda. Setelah Anda membuat hook WordPress yang lebih kompleks, Anda harus mempelajari hook yang cenderung lebih sering Anda gunakan. Seiring waktu, Anda akan menghafal kait ini. Ini adalah proses yang sulit, dan tidak ada yang mampu menghafal setiap kait ini.
Codex WordPress adalah satu-satunya sumber daya terbaik untuk digunakan dalam perjalanan Anda menjadi pengembang WordPress top dunia berikutnya.
Kristen telah menulis tutorial untuk membantu pengguna WordPress sejak 2011. Anda biasanya dapat menemukannya mengerjakan artikel baru untuk blog iThemes atau mengembangkan sumber daya untuk #WPprosper. Di luar pekerjaan, Kristen menikmati jurnal (dia menulis dua buku!), hiking dan berkemah, memasak, dan petualangan sehari-hari bersama keluarganya, berharap untuk menjalani kehidupan yang lebih kekinian.
