Skip to Content | Skip to Menus | Copyright?

Posted on

Salah satu fitur menarik dari WordPress adalah mode hook. Sesuai namanya hook atau kait digunakan untuk memanipulasi prosedur tanpa harus memodifikasi file core WordPress itu sendiri. Kali ini kita akan berkenalan dengan salah satu mode hook, yaitu Action.

Definisi hook action menurut WordPress Codex : “Actions are the hooks that the WordPress core launches at specific points during execution, or when specific events occur.”

bila diterjemahkan secara bebas : “Action adalah hook ( fungsi manipulasi ) yang dijalankan saat core WordPress berlangsung pada kondisi atau even tertentu “.

Hook Action ada 2 macam :

1. add_action : menambahkan suatu elemen baru ( atau mengganti yang sudah ada )

2. remove_action : menghapus suatu elemen ( dan kalo mau diganti dengan yang baru ).

Sederhananya, hook action digunakan untuk mengubah suatu fungsi dengan cara menambah atau menghilangkan suatu fungsi tersebut. Bingung ya …sama saya juga sedikit bingung bagaimana cara menjelaskannya lewat tulisan :D

OK, supaya saya yang menulis dan anda yang baca tidak tambah bingung, kita langsung saja ke contoh cara kerjanya.

add_action hook

pola penulisan hook add_action adalah sebagai berikut :

add_action('nama function target_hook', 'nama_function_yang_mau_dipasang' ,'skala_prioritas')

Contoh 1 : Dari suatu plugin untuk memasang google adsense script di footer area ( tepat sebelum tag </body> ) menggunakan kode berikut :

<?php 
add_action( 'wp_print_footer_scripts', 'devio_custom_footer_scripts' );
function devio_custom_footer_scripts(){
?>
<script>//isi custom footer script disini</script>
<?php 
}
?>

Perhatikan pola pada contoh di atas,

  • nama function target_hook adalah wp_print_footer_scripts
  • nama_function_dipasang adalah devio_custom_footer_scripts
  • skala_prioritas adalah 10 ( bila tidak dinyatakan lain defaultnya adalah 10 )

catatan: skala prioritas akan menunjukkan urutan bagaimana output dari function-function yang dipasang bila menggunakan target_hooks yang sama.

Contoh lanjutan ( skala prioritas ) :

<?php 
add_action( 'wp_print_footer_scripts', 'devio_custom_footer_scripts' );
add_action( 'wp_print_footer_scripts', 'devio_custom_footer_scripts_lagi' );

function devio_custom_footer_scripts(){
?>
<script>//isi custom footer script disini</script>
<?php }

function devio_custom_footer_scripts_lagi(){
?>
<script>//contoh script output no 2 </script>
<?php
}

Output dari kombinasi contoh diatas adalah :

<script>//isi custom footer script disini</script>
<script>//contoh script output no 2 </script>

Sampai sini bisa dipahami dengan jelas kan. OK bagaimana kalau kita ubah sedikit skala prioritas contoh di atas menjadi :

add_action( 'wp_print_footer_scripts', 'devio_custom_footer_scripts', 11 );
add_action( 'wp_print_footer_scripts', 'devio_custom_footer_scripts_lagi' );

apakah outputnya tetap sama? Jawabannya adalah tidak ! Kenapa ?

karena output akan diurutkan berdasarkan skala prioritas, dan hook dengan skala prioritas yang lebih kecil akan ditampilkan lebih dahulu ( ingat, bila tidak dinyatakan lain skala prioritas adalah 10 ) sehingga outputnya adalah :

<script>//contoh script output no 2</script>
<script>//isi custom footer script disini</script>

remove_action hook

OK, sejauh ini kita sudah mengupas dan memahami ( pastinya dong ) bagaimana menambah elemen dengan add_action hook.

Sekarang bagaimana kita bisa mengubah output yang dibuat oleh plugin ( contoh di atas ) tanpa harus mengedit kode file plugin. Sebut saja, kita ingin mengubah output dari function devio_custom_footer_scripts. Caranya mudah saja, gunakan remove_action dan add_action pada file functions.php ( themes ) atau menggunakan theme functionality plugin.

remove_action( 'wp_print_footer_scripts', 'devio_custom_footer_scripts', 11 );
add_action( 'wp_print_footer_scripts', 'devio_custom_footer_scripts_theme', 11 );

function devio_custom_footer_scripts_theme()
{
?>
<script>//contoh output by theme</script>
<?php
}

Pada contoh diatas, kita lakukan remove_action untuk menghapus kondisi sebelumnya, dan untuk kemudian menuliskan lagi dengan add_action. Output dari contoh kode terakhir adalah :

<script>////contoh script output no 2</script>
<script>//contoh ouput by theme</script>

Sampai disini, kita sudah mempelajari apa hook action, macam-macam hook action, dan melakukan eksperimen kecil untuk pemahamannya. Bila materi tutorial ini dirasa masih kurang ( pastinya ), silakan dilanjut eksperimen-eksperimen lainnya.

PS : DeVio Playground – WordPress Theme Framework yang digunakan untuk theme ini banyak menggunakan hook action dan bila anda telah paham konsep hook action, pastinya bisa mengaplikasikan DeVio Playground untuk membuat theme buatan sendiri.

PPS : DeVio Playground dikonsep dan ditulis oleh seorang Riesurya, berlisensi GPL dan free forever ( tidak termasuk extended support tentunya )

Buat yang mau belajar hooks dengan asik dan mudah silakan meluncur ke DeVioPlayground. Download pluginnya, cermati isi nya dan kalau masih bingung banyak tutorial di artikel Play with hooks

Last Modified on :

CopyRight & Left : ©2007 - now and forever

part of DeVio Multimedia

TOS - Help - Contact - About

Developed with DeVio Playground - Theme Framework