Actions trong WordPress là gì?
Actions trong WordPress là một trong hai loại Hooks. Actions cho phép chúng ta chạy một chức năng tại một điểm cụ thể trong quá trình thực thi WordPress Core, plugin và theme.

Tạo một Actions trong WordPress
Quy trình tạo một action bao gồm 2 bước:
Tạo một callback function
Trước tiên cần tạo một callback function. Function này sẽ chạy khi hook mà nó được gán vào chạy.
Gán callback function vào hook
Sau khi tạo callback function, chúng ta sử dụng hàm add_action()
để gán function vào hook. Hàm add_action()
yêu cầu tối thiểu 2 tham số:
- string $hook_name là tên của action hook bạn muốn thực thi callback function.
- callable $callback là tên của callback function bạn muốn gán vào hook.
Ví dụ bên dưới woocommerce_support()
sẽ chạy khi after_setup_theme
được thực thi.
function woocommerce_support() {
add_theme_support( 'woocommerce' );
}
add_action( 'after_setup_theme', 'woocommerce_support' );
Tham số bổ sung của Actions trong WordPress
Cấu trúc của add_action()
có dạng như sau:
add_action( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 )
Với:
- $hook_name: (string) (bắt buộc) tên của action hook.
- $callback: (callable) (bắt buộc) tên của hàm callback.
- $priority: (int) (tuỳ chọn) độ ưu tiên, mặc định là 10.
- $accepted_args: (int) (tuỳ chọn) số lượng tham số mà hàm callback sử dụng, mặc định là 1.
$priority – Mức độ ưu tiên
Bạn có thể gán nhiều hàm callback cho một hook. Trong một số trường hợp bạn cần hàm callback này chạy trước hoặc sau hàm callback khác, do đó bạn cần gán cho add_action()
một tham số là $priority
để quyết định mức độ ưu tiên.
Ví dụ: Tất cả các hàm sau đây đều được gán cho init
hook, nhưng với mức độ ưu tiên khác nhau:
add_action('init', 'callback_1', 11);
add_action('init', 'callback_2');
add_action('init', 'callback_3', 9);
add_action('init', 'callback_4', 11);
Trong ví dụ trên:
- Đầu tiên là
callback_3()
sẽ được chạy vì nó có mức ưu tiên là 9. - Tiếp theo là
callback_2()
vì nó không được đặt mức độ ưu tiên nào, do đó nó có độ ưu tiên mặc định là 10. - Tiếp theo là
callback_1()
vì nó có mức ưu tiên là 11. - Cuối dùng là
callback_4()
, nó củng có độ ưu tiên là 11, nhưng nó được gọi saucallback_1()
.
$accepted_args – Số lượng tham số
Đây là số lượng tham số của hàm callback sử dụng.
Ví dụ:
add_action( 'init', 'my_callback', 10, 3 );
function my_callback( $a, $b, $c ) {
// code
}
Tạo một Actions Hook cho riêng bạn
Việc tự tạo một Action Hook và chạy nó rất đơn giản, bạn chỉ việc làm theo hướng dẫn bên trên, sau đó thực thi bằng hàm do_action()
Ví dụ:
add_action( 'my_action', 'my_callback', 10, 3 );
function my_callback( $a, $b, $c ) {
echo 'nhut.me';
}
Sau đó gọi action ở nơi bạn muốn:
do_action('my_action');