Di dalam WordPress Codex di jelaskan sebagai berikut.

Action adalah sebuah trigger (pemicu) yang terjadi dari sebuah event (peristiwa) di dalam WordPress. Seperti Penerbitan (publishing) post, Penggantian Theme, atau menampilkan halaman admin (dashboard). Action adalah sebuah fungsi PHP yang di modifikasi dan di definisikan dalam plugin atau theme dan sudah di Hooks. Contohnya untuk merespon sebuah peristiwa (event).

Jadi, pada dasarnya Action adalah fungsi yang dipicu oleh event WordPress dan di jalankan sebelum atau sesudah event. Action adalah salah satu dari dua jenis “Hooks” di dalam wordpress – yang di sebut “filter” yang kita bahas beberapa waktu lalu – Lihat “Limat puluh filter WordPress Jika anda ingin mempelajari lebih lanjut tentang filter WordPress.

Mendefinisikan action adalah hal paling mudah yang dapat kita lakukan di bagian ini. Untungnya, belajar cara menggunakan dan membuat action cukup mudah. Mari kita lihat bagaimana kita menghubungkan function untuk action., Buat sebuah action baru, menghapus action yang sudah ada dan action yang mempunya kemiripan fungsi di dalam inti WordPress (WordPress Core).

Mungkin fungsi yang paling mudah di antaranya adalah yang satu ini: Ini digunakan untuk menghubungkan fungsi dengan action yang akan kita gunakan:

1
2
3
4
5
<?php
add_action( $hook_name, $function_name, $priority, $arguments );
?>

Mari kita lihat apa maksud parameter tersebut:

  • $hook_name Adalah nama action yang akan kita gunakan
  • $function_name Adalah nama function kita.
  • $priority Adalah bilangan integer yang kita tentukan untuk mengatur bagaimana awal fungsi tersebut akan di jalankan oleh Action Hook
  • $arguments Adalah jumlah argumen yang mendefinisikan bahwa fungsi yang kita gunakan Action hook yang di perbolehkan.

Mari kita lihat contoh nya:

1
2
3
4
5
6
7
8
9
<?php
add_action( 'add_meta_boxes', 'my_function', 10, 2 );
function my_function( $post_type, $post ) {
    // do stuff with $post_type and $post
}
?>

Cukup mudah bukan?

Kita punya dua function untuk menghapus function dari action hooks: remove_action() dan remove_all_actions(). Mari kita lihat bagaimana menggunakan keduanya.

1
2
3
4
5
6
7
8
9
<?php
// remove_action( $hook_name, $function_name, $priority );
remove_action( 'login_enqueue_scripts', 'some_function', 10 );
// remove_all_actions( $hook_name, $priority
remove_all_actions( 'wp_enqueue_scripts', 10 );
?>

Function remove_action() mempunyai tiga parameter: Nama Hook, nama function yang akan kita keluarkan dari hook, dan prioritas yang di tetapkan saat menggunakan add_action(). Function remove_all_actions()tidak mempunyai parameter $function_name, Karena itu menghapus semua function yang di hook oleh action.

Jika anda membabangun Plugin atau Theme WordPress, praktek yang benar adalah dengan membuat hooks di dalam kode mu agar pengembang yang lain dapat mengembangkan plugin atau theme yang anda buat. Untuk melakukannya, kita memiliki dua fungsi lagi yakni add_action() dan do_action_ref_array(). Mari kita lihat bagaiamana yang pertama bekerja:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
<?php
do_action( $hook_name, $arg1, $arg2, /* ... */ $argN );
/*
 * Usage:
 *
 * add_action( hook_name, my_function )
 *
 * function my_function( $arg1, $arg2 ) {
 * // do stuff with $arg1, $arg2 and so on
 * }
 *
 */
?>

Seperti yang anda lihat, function hampir memliki jumlah parameter yang tak terbatas karena anda dapat menentukan banyak argumen yang anda butuhkan. Jika Anda perlu menjaga argumen anda dalam array, meskipun anda perlu menggunakan function kedua:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<?php
$args = array( $arg1, $arg2, /* ... */ $argN );
do_action_ref_array( $hook_name, $args );
/*
 * Usage:
 *
 * add_action( hook_name, my_function )
 *
 * function my_function( $args ) {
 * // do stuff with $args[0], $args[1] and so on
 * }
 *
 */
?>

Jika anda merasa perlu untuk mengetahui berapa kali suatu tindakan di panggil, Anda dapat menggunakan Function ini guna menghitung pemanggilan action:

01
02
03
04
05
06
07
08
09
10
<?php
function tuts_foo() {
    $action_count = did_action( 'some_action_name' );
    if ( 1 === $action_count ) {
        // run code if 'some_action_name' has been fired only once
    }
}
?>

Seperti yang anda lihat, satu satunya parameter function yang dimiliki adalah nama dari action hook.

Bayangkan Anda sedang membangun sebuah ekstensi plugin WordPress yang terkenal dan anda perlu memeriksa jika pengguna telah menginstal plugin tersebut atau tidak. (setelah itu, plugin anda tidak akan bekerja jika yang lain tidak di pasang dan di aktifkan).

Untuk mengeceknya, Anda dapat menggunakan function has_action() untuk memastikan action hook dari plugin terkenal tersebut telah aktif.

01
02
03
04
05
06
07
08
09
10
<?php
if( has_action( 'some_popular_plugin_action' ) {
    add_action( 'some_popular_plugin_action', 'extension_to_the_some_popular_plugin' );
} else {
    wp_die( 'Sorry to kill your website but I need "Some Popular Plugin" to work with.' );
    // CAUTION: This is a joke. Don't shut down a website because your plugin can't work with it.
}
?>

Sama seperti function did_action() , function has_action() hanya memiliki satu parameter. yakni nama action hook.

LEAVE A REPLY

Please enter your comment!
Please enter your name here