Penjelasan Action Hook dan Filter Hook untuk Pemula

posted in: Ilmu Web | 6

Apabila Anda ingin ‘memanipulasi’ WordPress, Anda harus paham tentang Action Hook dan Filter Hook. Barulah Anda bisa menambah fungsionalitas WordPress, baik lewat plugin atau functions.php.

Apa beda action dan filter hook?

Action hook fungsinya untuk menyisipkan tindakan, sedangkan filter hook untuk mengubah nilai.

Saya akan jelaskan kedua konsep ini.

Konsep action hook

Anggap Budi menulis koding berikut ini:

<?php
echo "Aku seorang kapiten <br />";

echo "Mempunyai pedang panjang <br />";

echo "Kalau berjalan prok! prok! prok!";
?>

echo akan mencetak setiap baris tulisan itu di layar. Hasilnya:

Aku seorang kapiten
Mempunyai pedang panjang
Kalau berjalan prok! prok! prok!

Lalu apa yang harus Anda lakukan, jika sebelum echo kedua, Anda ingin: melakukan proses menghitung 1+1 dan mencetaknya di layar.

Jawabannya, kalau sekarang, Anda terpaksa harus ubah koding aslinya. Cara Ini tidak disarankan.

Solusinya Budi perlu memasang hook.

Format action hook minimal:  do_action ($namahook)

Contoh:

<?php
echo "Aku seorang kapiten";
do_action ('actionhook_lagu_kapiten');
echo "Mempunyai pedang panjang";

echo "Kalau berjalan prok! prok! prok!";

?>

Jika Anda ingin memanfaatkan hook ini, pakailah add_action ():

add_action ($namahook, $namafunction).

di plugin atau functions.php

Ini artinya Anda menghubungkan hook yang bersangkutan dengan function buatan Anda.

Contoh:

<?php

add_action ('actionhook_lagu_kapiten', 'hitung')

function hitung() {
$a = 1+1;
echo $a."<br />";
}

?>

Hasilnya:

Aku seorang kapiten
2
Mempunyai pedang panjang
Kalau berjalan prok! prok! prok!

Anda boleh meletakkan add_action ($namahook, $namafunction)  sebelum atau sesudah function.

Prioritas

Bayangkan kalau ada dua orang yang memanfaatkan hooknya Budi. Lalu perintah siapa dulu yang dijalankan?

Untuk itu add_action  bisa diberikan angka prioritas. Makin kecil, makin duluan.

add_action ($namahook, $namafunction, $prioritas)

Contoh:

add_action ('actionhook_lagu_kapiten', 'hitung', 3)

Jika dua orang memasang angka prioritas yang sama, maka yang duluan ditambahkan ke action, yang terlebih dahulu dijalankan.

Argumen

Sebuah do_action  juga bisa mengirimkan argumen:

do_action ($namahook, $argumen)

Jika Anda pusing dengan istilah argumen, sederhananya Anda bisa mengirim nilai. Argumen bisa diisi dengan angka, string, array, boolean, dll.

Contoh:

do_action ('actionhook_lagu_kapiten', 'lapar')

Argumen nanti bisa digunakan, misalnya untuk mengecek atau membandingkan sesuatu.

Nilai argumen ‘lapar’, Anda ambil dengan menulis sebuah function seperti ini:

function hitung($ambilargumen) {}

Lebih dari satu argumen

do_action   juga bisa mengirim lebih dari satu argumen.

Contoh:

do_action ('actionhook_lagu_kapiten', 'lapar', 1000)

Maka untuk bisa mengambil keduanya, pertama penulisan add_action harus berformat seperti ini

add_action ($namahook, $namafunction, $prioritas, $jumlahargumen)

Contoh:

add_action ('actionhook_lagu_kapiten', 'hitung', 10, 2)

Baru kemudian di functionnya ditulis kurang lebih seperti:

function hitung($ambilargumen1, $ambilargumen2) {}

Apabila di function Anda mengambil 2 argumen, tetapi angkanya tidak Anda tulis di add_action , maka akan terjadi error.

Konsep filter hook

Filter hook digunakan untuk mengubah nilai. Kita pakai kembali contoh koding lagu kapiten yang ditulis oleh Budi:

<?php
echo "Aku seorang kapiten <br />";

echo "Mempunyai pedang panjang <br />";

echo "Kalau berjalan prok! prok! prok!";
?>

Sekarang, kalau Anda ingin mengubah lirik “Aku seorang kapiten <br />” bagaimana caranya?

Jawabannya, ubah lagsung koding aslinya. Akan tetapi sekali lagi, ini tidak disarankan.

Solusinya, Budi perlu menambahkan filter hook. Formatnya:

apply_filters($namahook, $nilai);

Catatan: filter-nya pakai ‘s’: apply_filters

Contoh:

<?php
echo apply_filters("filterhook_lagu_kapiten", "Aku seorang kapiten <br />");

echo "Mempunyai pedang panjang <br />";

echo "Kalau berjalan prok! prok! prok!";
?>

Jika Anda ingin memanfaatkan hook ini Anda cukup menggunakan add_filter ().

add_filter ($namahook, $namafunction);

di plugin atau functions.php

Catatan: filter-nya tidak pakai ‘s’: add_filter

Contoh:

<?php
add_filter ("filterhook_lagu_kapiten", "gantilirik");

function gantilirik() {
return "Balonku ada lima <br />";
}
?>

Kalau filter hook pasti pakai return, biar dikirim balik nilai ke sumbernya.

Jika dijalankan hasilnya akan seperti ini:

Balonku ada lima
Mempunyai pedang panjang
Kalau berjalan prok! prok! prok!

Variasi lain penulisan add_filter bisa juga seperti ini:

add_filter ("filterhook_lagu_kapiten", "Balonku ada lima <br />");

Penutup

Akhirnya Anda telah sampai ke penghujung tutorial. Jika menurut Anda artikel ini bagus, Anda bisa share atau silahkan berlangganan blog ini untuk mendapatkan artikel-artikel tutorial lainnya yang top.

Jika ada pertanyaan bisa komentar di bawah, atau bergabung di forum dUS.

6 Responses

  1. anandia

    thanks bro, dari sekian tutorial yg ada tentang action wordpress ini, baru blog ini yang bisa ane pahami

    • Juan feju

      Your welcome. Saya juga susah mengerti kedua hal ini sebelumnya, setelah paham, saya buat artikel sederhana untuk menjelaskannya.

  2. Blog Dmathholic

    salam kenal koh, tulisannya sangat membuka wawasan, jadi kalu mau ngeblog ada baiknya ‘Menyelam sambil minum kopi, susu, teh manis’

Leave a Reply