Membuat Plugin WordPress

Hook

Hook adalah salah satu fitur inti dari WordPress. Hook sendiri memungkinkan para developer untuk mengembangkan WordPress sesuai kebutuhannya tanpa harus mengubah core WordPress itu sendiri. Dengan tanpa mengubah core inilah, maka pengguna engine WordPress akan selalu dapat menikmati update versi terbaru tanpa khawatir penyesuaian kebutuhan yang dilakukannya akan hilang.

Hook dalam WordPress dibagi menjadi dua, action hook dan filter hook. Action hook adalah hook yang memungkinkan eksekusi fungsi buatan anda pada suatu posisi (sebelum atau sesudah suatu fungsi wordpress dijalankan). Filter hook adalah hook yang memungkinkan anda untuk melakukan modifikasi output sebuah fungsi tanpa melakukan perubahan pada fungsi tersebut.

Action Hook

Action hook adalah hook yang memungkinkan eksekusi fungsi buatan anda pada suatu posisi (sebelum atau sesudah suatu fungsi wordpress dijalankan). Contoh posisi yang dimaksud misalnya, anda menginginkan fungsi anda untuk dieksekusi sebelum atau sesudah sebuah tulisan di simpan.

1. Menambahkan Action hook

untuk menambahkan action hook, gunakan fungsi add_hook():

[sourcecode language=”php”]
add_action( $tag, $function, $priority, $accepted_args );
[/sourcecode]

dimana:
– $tag = nama dari action hook yang akan ditambahkan
– $function = nama fungsi yang akan dieksekusi
– $priority = prioritas posisi, makin kecil makin cepat dieksekusi dibanding hook yang lain
– $accepted_args = argumen fungsi jika fungsi sasaran membutuhkan argumen

Action hook dalam WordPress tidak dibatasi hanya untuk satu action saja. Plugin yang anda kembangkan dapat menambahkan serangkaian action pada suatu action hook. Action hook sendiri tidak membatasi hanya dari plugin anda yang dieksekusi, tapi juga dari plugin lain atau bahkan core dari WordPress sendiri.

Contoh penggunaan fungsi add_action() ini dapat anda temui pada halaman sebelumnya.

[sourcecode language=”php”]
add_action( ‘wp_footer’, ‘footercopyright_add_message’, 100);
function footercopyright_add_message(){
echo "Situs ini dibuat dengan <a href="http://wordpress.org">WordPress</a>. Copyright &copy 2012 by Nama anda";
}
[/sourcecode]

2. Mengeksekusi action hook

Setiap fungsi yang menjadi sasaran sebuah action hook, tidak dipanggil/dieksekusi secara langsung semisal dengan menuliskan nama fungsinya (contoh: simpan_dan_backup_post() ) tapi harus dipanggil/dieksekusi lewat interface hook yang disediakan WordPress, yaitu: do_action();

Pola penggunaan fungsi do_action() adalah:

[sourcecode language=”php”]
do_action( $tag, $arg = ” );
[/sourcecode]

dimana:
– $tag = nama dari action hook itu sendiri,
– $arg = argumen fungsi yang akan dimasukkan pada fungsi sasaran

Pola tersebut juga dapat diperluas jika argumen fungsi yang dibutuhkan lebih dari satu argumen, sehingga polanya menjadi:

[sourcecode language=”php”]
do_action( $tag, $arg_1, $arg_2, $arg_3);
[/sourcecode]

Contoh penggunaan fungsi do_action() dapat anda temui pada core WordPress, seperti pemanggilan fungsi wp_head() yang akan menampilkan tag khusus head WordPress.

[sourcecode language=”php”]
do_action( ‘wp_head’ );
[/sourcecode]

atau untuk pola lebih dari satu argumen fungsi adalah action save_post(), dimana argumen yang disampaikan adalah ID post dan array Post (tulisan), tertulis:

[sourcecode language=”php”]
do_action( ‘save_post’, $post_ID, $post );
[/sourcecode]

Cara Kerjanya dari fungsi do_action sebenarnya cukup sederhana. Ketika fungsi ini dieksekusi, $tag sebagai nama dari action hook tersebut akan dicari referensi action hook apa saja yang terdapat dalam array data action hook WordPress, kemudian dipetakan menurut prioritasnya. WordPress kemudian mengeksekusi fungsi-fungsi yang telah terpetakan untuk action hook tersebut.

Jika argumen yang akan disampaikan berupa array, eksekusi action tidak dilakukan dengan do_action() tapi dengan fungsi do_action_ref_array().

Polanya adalah sebagai berikut:

[sourcecode language=”php”]
do_action_ref_array( $tag, $args );
[/sourcecode]

Contoh penggunaannya dapat anda temui pada action hook pre_get_posts() berikut:

[sourcecode language=”php”]

[/sourcecode]

Fungsi do_action_ref_array() biasanya digunakan pada plugin-plugin atau core WordPress yang ditulis dalam kerangka OOP (Object-oriented Programming).

Pada tutorial selanjutnya, kita akan mempelajari bagaimana cara menghapus sebuah action hook baik itu satu hook, maupun semua hook yang ditujukan pada suatu fungsi, termasuk mengecek apakah sebuah action hook itu ada dan apakah sebuah hook itu telah dilakukan.

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top