Apa Itu WordPress Hooks

wpJakarta.Com – Apa Itu WordPress Hooks. Banyak dari artikel kami tentang bagaimana memodifikasi fungsi bawaan (core) WordPress atau WooCommerce. Dan untuk melakukannya, kami sering memanfaatkan apa yang di sebut WordPress hook. Lalu, apa itu WordPress Hooks ? Bagaimana cara menggunakannya ? Kapan dan kenapa harus di lakukan ?

Artikel dan tutorial tentang WordPress Hooks

Pengertian Apa Itu WordPress Hooks

Apa itu WordPress hooks ? WordPress hooks adalah cara untuk satu bagian kode (script) untuk berinteraksi atau memodifikasi bagian lain dari kode di tempat yang telah ditentukan sebelumnya. Hooks menjadi dasar bagaimana plugin dan tema website berinteraksi dengan WordPress Core. Hooks juga digunakan secara luas oleh Core itu sendiri.

Anggaplah bahwa WordPress Hooks adalah fitur yang di sediakan oleh WordPress yang memungkinkan kita untuk memanipulasi prosedur standar WordPress tanpa harus melakukan perubahan pada file inti atau script WordPress secara langsung. Sebuah hook dapat diterapkan baik untuk action (action hook) dan filter (filter hook). Bagi anda yang ingin mempelajari bagaimana memodifikasi atau mengkustom website WordPress, tentu penting untuk mengetahui bagaimana hook-hook tersebut bekerja.

Jenis Hooks (WordPress Hooks)

Ada dua jenis Hook, yaitu : Action dan Filter. Untuk menggunakannya, Anda perlu menulis fungsi kustom yang dikenal sebagai Callback, lalu mendaftarkannya dengan hook WordPress untuk action atau filter tertentu.

Action Hooks

Hook Action memungkinkan kita untuk menambahkan data atau mengubah cara kerja WordPress. Hook action akan berjalan pada titik tertentu untuk mengeksekusi WordPress Core, plugin, dan tema. Fungsi callback pada pada hook action dapat melakukan beberapa jenis tugas, seperti membuat output ke pengguna atau memasukan (insert) data ke dalam database.

Filter Hooks

Sedangkan hook Filter memberi kita kemampuan untuk mengubah data ketika melakukan eksekusi WordPress Core, plugin, dan tema. Fungsi callback pada pada hook filter akan menerima variabel, memodifikasi, dan mengembalikannya. Hook filter dimaksudkan untuk bekerja secara terisolasi, dan tidak boleh memiliki efek yang mempengaruhi variabel dan output global.

Perbedaan antara action hook dan filter hook

Action hook akan mengambil informasi yang diterima, lalu melakukan sesuatu dengan, dan tidak mengembalikan apa pun. Dengan kata lain: ia bekerja pada sesuatu dan kemudian keluar, tidak mengembalikan apa pun kembali ke kait panggilan. Action hook adalah menginterupsi aliran kode untuk melakukan sesuatu, dan kemudian kembali ke aliran normal tanpa mengubah apa pun.

Sedangkan Filter hook mengambil info yang diterima, memodifikasinya, dan mengembalikannya. Dengan kata lain, Filter hook akan menyaring sesuatu dan meneruskannya kembali ke hook untuk digunakan lebih lanjut. Filter hook digunakan untuk memodifikasi sesuatu dengan cara tertentu sehingga modifikasi tersebut untuk kemudian digunakan oleh kode di kemudian hari.

Hook pada tema dan plugin

Selain WordPress, tema website dan plugin juga biasanya memiliki hook. Pada artikel ini kami membahas secara general antara apa itu WordPress hook dan theme hook. Karena secara fungsi dan tujuan memiliki fungsi yang sama. Salah satu contoh simple adalah ketika kita ingin agar website kita bisa menampilkan iklan google adsense. Dimana google adsense akan memberikan sepotong kode. Dan kode tersebut harus di integrasikan ke dalam website WordPress anda.

Biasanya kode adsense tersebut harus di masukan di dalam antara tag <head> dan </head>. Ada dua cara untuk melakukan demikian :

  • Memasang langsung pada file header (header.php)
  • Memanfaatkan sebuah hook

Memasang langsung pada file header.

Menambahkan kode langsung pada file header. Jika memilih cara ini anda tidak harus membuat function atau callback. Cukup tambahkan kode iklan tersebut langsung di dalam file header.php di antara tag <head> dan </head> seperti misalnya sebagai berikut.

<head>
<script data-ad-client="ca-pub-xxxxxxxxxxxxxxxx" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

</head>

Memanfaatkan sebuah hook

Cara kedua adalah dengan memanfaatkan hook. Jadi selain mengetahui apa itu WordPress hooks, perlu juga untuk mengetahui bagaimana menggunakan hook. Cara berikut adalah dengan mengaplikasikan action hook dengan memanfaatkan hook wp_head. Jika menggunakan cara ini, maka anda tidak perlu mengakses atau merubah file asli header.php. Buat callback misalnya sebagai berikut.

// Kode google adsense
add_action('wp_head','wpjkt_adsense', 20);
function wpjkt_adsense() { ?>
<script data-ad-client="ca-pub-xxxxxxxxxxxxxxxx" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<?php
}

Alih-alih merubah langsung file header.php, anda cukup menuliskannya pada file function.php atau di dalam file plugin kode snippet yang bisa anda buat sendiri. Apa itu plugin kode snippet ? Lihat artikel yang pernah kami terbitkan tentang plugin kode snippet.

Kode di atas mengkatrol hook wp_head, memungkinkan skrip atau data di eksekusi di dalam tag head frontend. Nah sudah jelas apa itu WordPress hooks ? Lalu apa tujuan WordPress hooks ?

Tujuan WordPress hooks

Setelah mengetahui apa itu WordPress hooks. Lalu apa tujuannya WordPress hook, tema atau plugin hook ? Tidak lain adalah untuk menjalankan fungsi secara otomatis untuk tujuan seperti di jelaskan di atas. Yaitu untuk merubah, menjalankan perintah baru atau menambahkan data ke dalam database. Selain itu, teknik ini juga memiliki kemampuan untuk memodifikasi, memperluas, atau membatasi fungsionalitas suatu tema atau plugin.

Jika contoh kode adsense di atas adalah untuk menambah fungsi. Maka hook juga bisa di manfaatkan untuk merubah bahkan menonaktifkan kode yang tidak anda inginkan. Contoh berikut adalah bagaimana kami memanfaatkan hook plugin WooCommerce untuk merubah sebuah halaman single produk.

Hook untuk merubah layout halaman produk WooCommerce

function wpjkt_ubah_halaman_produk_wc() {
   remove_action('woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20);
   remove_action('woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20);
}
add_action('init', 'wpjkt_ubah_halaman_produk_wc');

KPada contoh di atas, kami membuat fungsi / callback wpjkt_ubah_halaman_produk_wc dengan aksi init. Hook ini akan melakukan tindakan baru di situs website, oleh karena itu, ini disebut action hook. Kode di atas me-remove (remove_action) dua buah hook WooCommerce woocommerce_before_single_product_summary dan woocommerce_product_thumbnails.

Setelah di buang (remove), lalu kita bisa membuat class atau element baru maka kita bisa merubah layout halaman single produk WooCommerce. Contoh perubahannya bisa di lihat di salah satu contoh halaman produk dummy WooCommerce berikut. https://wpjakarta.com/produk/jaket-woocommerce-silver-keren/.

Hook untuk membatasi skrip yang tidak di inginkan

WordPress banyak membawa fitur-fitur untuk memudahkan user dalam urusan blogging. Namun banyak juga pengguna WordPress yang justru tidak menginginkan fitur tersebut. Misalnya fitur feed, untuk secara total menon-aktifkannya bisa dengan membuat fungsi callback dan mengkatrol beberapa hook feed WordPress. Biasanya feed secara default bisa di akses pada url https://wpjakarta.com/feed/. Jika anda tidak menginginkan WordPress untuk memproduksi feed, maka anda bisa mematikannya dengan cara berikut.

// Menonaktifkan Feed
function wpjkt_disable_feed() {
    wp_die(__('Kami tidak menyediakan feed, Mohon kunjungi halaman homepage kami !!!'));
}
add_action('do_feed', 'wpjkt_disable_feed', 1);
add_action('do_feed_rdf', 'wpjkt_disable_feed', 1);
add_action('do_feed_rss', 'wpjkt_disable_feed', 1);
add_action('do_feed_rss2', 'wpjkt_disable_feed', 1);
add_action('do_feed_atom', 'wpjkt_disable_feed', 1);
add_action('do_feed_rss2_comments', 'wpjkt_disable_feed', 1);
add_action('do_feed_atom_comments', 'wpjkt_disable_feed', 1);

Nah sudah tau apa itu WordPress hooks ? Artikel berikutnya kami membahas bagaimana mengkatrol sebuah atau beberapa hook. Setelah memahami apa itu WordPress hooks, perlu juga untuk mengetahui bagaimana cara dalam memanipulasi hook. Fungsi yang kita buat mungkin saja tidak berjalan karena ada kesalahan timing ketika mengkatrol sebuah hook.

Artikel lainnya tentang pemrograman web

WordPress menyediakan banyak hook yang dapat di manfaatkan. Tetapi kita juga dapat membuatnya sendiri sehingga pengembang lain dapat memperluas dan memodifikasi plugin atau tema website yang anda buat. Lihat series artikel tentang WordPress hook pada artikel yang kami tag dengan WordPress hooks. List lengkap WordPress hooks bisa di lihat di https://developer.wordpress.org/reference/hooks/.