Sử dụng Action Hook trong wordpress

Hiện nay đã có rất nhiều bài viết định nghĩa về Hook, Action Hook và Filter Hook do đó các bạn có thể tìm hiểu định nghĩa về nó trên Google. Trong phạm vi các bài Series WP của Izblogs sẽ không đi sâu vào phân tích các định nghĩa mà sẽ trực tiếp đi vào phân tích tác dụng và cách sử dụng của nó.

Gắn Action vào Hook

Để gắn 1 Action vào một vị trí (Hook) nào đó, chúng ta sử dụng hàm add_action() theo cấu trúc:

Trong đó:

  • $tag: Tên một Action Hook của WordPress (Hệ thống wordpress có hơn 600 Hook), vị trí mà ta muốn gắn Action vào.
  • $function: Tên Action, là 1 hàm mà ta viết để tương tác vào hệ thống của wp.
  • $priority: Độ ưu tiên của Action
  • $accepted_args: Số lượng các tham số mà Action Hook sẽ truyền vào hàm của bạn (tham số này sẽ nhắc đến ở cuối bài viết)

Loại bỏ Action ra khỏi Hook

Để loại bỏ 1 Action ra khỏi một vị trí (Hook) nào đó, chúng ta sử dụng hàm remove_action() theo cấu trúc:

Trong đó:

  • $tag: Tên của 1 Action Hook của wordpress
  • $function_to_remove: Tên Action ta viết (hàm) để tương tác vào hệ thống wordpress.
  • $priority: Độ ưu tiên của Action
  • $accepted_args: Số lượng các tham số mà Action Hook truyền vào hàm của bạn.

*) Chú ý:

  • Sử dụng hàm remove_action() có thể loại bỏ 1 Action bất kỳ ra khỏi một vị trí (Hook), kể cả action đó là action có sẵn của hệ thống wp.
  • Hàm remove_action() phải được sử dụng sau hàm add_action() hoặc đối với Action đã được thực thi khi wordpress khởi động thì nó mới có tác dụng.
  • Phần lớn các Action mặc định của wp được định nghĩa trong tập tin: wp-includes/default-filters.php

Loại bỏ tất cả các Action

Để loại bỏ tất cả các Action ra khỏi một vị trí (Hook) nào đó, chúng ta sẽ sử dụng hàm remove_all_actions() có cấu trúc:

Trong đó:

  • $tag: Tên của 1 Action Hook của wordpress
  • $priority: Độ ưu tiên của Action

Kiểm tra sự tồn tại Action trong Hook

Để kiểm tra sự tồn tại của Action trong một Action Hook nào đó, chúng ta sử dụng hàm has_action() có cấu trúc:

Trong đó:

  • $tag: Tên của 1 Action Hook của wordpress
  • $function_to_check: Tên của một hàm để kiểm tra xem nó đã có thêm vào Hook hay chưa?

Các Action Hook thường sử dụng

  1. plugins_loaded
  2. init: Hook này được kích hoạt sau khi wp được thiết lập
  3. admin_menu
  4. template_redirect
  5. wp_head / wp_footer
  6. wp_loaded: Thực thi khi wp đã tải xong toàn bộ trang

Tạo 1 Action Hook hoàn toàn mới

Các Action Hook mới này thường được xây dựng do nhu cầu sử dụng của theme mới. Và để tạo Action Hook mới, chúng ta sẽ phải sử dụng 2 hàm có sẵn trong wp là add_action() và do_action().

Ví dụ 1: Tạo Action Hook mới trong Plugin

Gọi hàm the_new_action() này ngoài view, tại vị trí chúng ta muốn Action Hook này hiển thị.

Ví dụ 2: Sử dụng tham số thứ 4 của hàm add_action()

*) Chú ý:

  • Giá trị tham số thứ 4 của hàm add_action() là bằng tổng số tham số trong hàm new_action_callback.
  • Trong hàm new_action_callback() có những tham số nào thì hàm do_action() phải được gán những tham số đó.

Bài viết liên quan

Thông tin tác giả

Thêm bình luận