Tìm hiểu về Action Hook, Filter Hook và cách sử dụng chúng trong WordPress

Tìm hiểu về Action Hook, Filter Hook và cách sử dụng chúng trong WordPress

Action Hook và Filter Hook là hai khái niệm rất quan trọng trong lập trình WordPress. Khi bạn muốn tạo ra các chức năng cho theme hay Plugin, hook sẽ là công việc bạn cần quan tâm đến.

Hook là gì ?

WordPress sẽ tạo ra các điểm neo để bạn móc cái hàm của bạn vào nếu cần, các điểm neo đó được gọi là Hook. Và khi thực thi đến vị trí các điểm neo đó, thì cái hàm bạn móc vào sẽ hoạt động. Trong bài: Tạo các trường tùy biến cho theme WordPress không cần sử dụng Plugin mình đã sử dụng các Action hook “customize_register” để móc các hàm tạo trường tùy biến vào. Để sử dụng hook bạn cần xác định hook của bạn là Action hay là Filter.

Action Hook, Filter Hook và cách sử dụng

Action Hook, Filter Hook và cách sử dụng

Action Hook là gì và cách tạo Action Hook

Action Hook trong WordPress

Giống như cái tên của nó, thì Action Hook là các điểm liên quan đến tạo ra các hành động. Thông thường Action Hook được sử dụng rất nhiều trong việc thiết kế theme, để nó can thiệp vào một hành động nào đó trong theme mà không cần phải đụng chạm đến mã nguồn của WP. Cú pháp của Action Hook như sau:

add_action ($tag, $function, $priority = 10, $accepted_args = 1 )
  • $tag: là action hook bạn muốn móc vào.
  • $function: là hàm bạn cần móc vào.
  • $priority: mức độ ưu tiên, mặc định là 10.
  • $accepted_args: là số các tham số tham gia vào hàm. Không vượt quá tổng số của Hook.

Tạo Action Hook trong WordPress

Ví dụ: khi bạn muốn gửi Email thông báo khi một bài viết được lưu bạn có thể viết như sau:

// Hàm gửi mail
function send_email_admin($id, $post)
{
    if ($post->post_status == 'public'){
        // Thực hiện gửi email
    }
} 

// Đưa hàm send_email_admin vào hook action save_post
add_action('save_post', 'send_email_public', 11, 2);

Filter Hook là gì và cách tạo Filter Hook

Filter Hook trong WordPress

Filter Hook đa phần được sử dụng để can thiệp và các điểm xử lý nội dung. Các Filter Hook được sử dụng nhiều hơn trong các Plugin liên quan đến nội dung, như các Plugin chèn quảng cáo trong nội dung, các Plugin chèn link nofollow,…

Cú pháp của Filter Hook tương tự Action Hook.

add_filter ( $tag, $function, $priority = 10, $accepted_args = 1 )

Tạo Filter Hook trong WordPress

Mình muốn mọi tiêu đề khi in ra trong bài post đều có kèm theo từ TUANDC, mình sẽ viết như sau.

// Hàm xử lý bổ sung từ cho title
function add_to_title($title)
{
     return $title.'- TUANDC';
}
// Đưa hàm add_to_title vào hook filter the_title
add_filter('the_title', 'add_string_to_title', 10, 1);

Như vậy thì mình đã giới thiệu cơ bản cho bạn hiểu về Action Hook và Filter Hook trong WordPress rồi. Bạn có thể tìm hiểu thêm về các $tag hook trên internet bằng cách gõ từ “List of all WordPress hooks“. Mình nhớ không lầm là có hơn 2100 hook lận.

Đoàn Tuấn

Tác giả: ĐOÀN CÔNG TUẤN

Với niềm đam mê về khoa học công nghệ thông tin, đặc biệt là lập trình. Tôi đã thành lập blog Tuandc.com để lưu trữ và chia sẻ những kiến thức thực tế có được trong quá trình làm việc. Với kinh nghiệm gần 10 năm làm việc trong lĩnh vực, những kiến thức tôi chia sẻ hy vọng sẽ giúp được phần nào đó.