Tạo custom Action Hook trong WordPress là một kỹ năng rất hữu ích để tùy chỉnh và mở rộng chức năng của website mà không cần chỉnh sửa trực tiếp vào core hoặc theme/plugin.

Action Hook là gì?

Trong WordPress, action hook là những “điểm neo” được định nghĩa sẵn trong mã nguồn. Tại những điểm này, bạn có thể “móc” (hook) các hàm tùy chỉnh của mình vào để thực thi một hành động nào đó khi WordPress chạy qua điểm neo đó.

1. Các bước tạo custom action hook:

Chọn một vị trí thích hợp: Xác định vị trí trong mã nguồn theme hoặc plugin của bạn nơi bạn muốn “gắn” action hook. Vị trí này thường là nơi bạn muốn thực hiện một hành động tùy chỉnh. Ví dụ:

Trước khi hiển thị nội dung một bài viết.

Sau khi lưu một bài viết.

Trong quá trình xử lý form.

Bất kỳ vị trí nào bạn thấy phù hợp với nhu cầu của mình.

2. Khai báo action hook bằng do_action():

Tại vị trí bạn đã chọn, hãy thêm đoạn mã PHP sau để khai báo action hook:

do_action( 'ten_action_hook_cua_ban' );

Thay thế 'ten_action_hook_cua_ban' bằng một tên duy nhất và dễ hiểu, thường sử dụng tiền tố của theme hoặc plugin của bạn để tránh xung đột tên với các action hook khác.

Ví dụ: tccntt_after_content, tccntt_before_save.

Bạn cũng có thể truyền dữ liệu vào action hook bằng cách thêm các tham số sau tên hook:

do_action( 'ten_action_hook_cua_ban', $arg1, $arg2, ... );

Tạo hàm xử lý action: Bây giờ, bạn cần tạo một hàm PHP để thực hiện hành động bạn muốn khi action hook được gọi. Ví dụ:

function my_custom_action_function() {
    // Mã PHP bạn muốn thực thi tại hook này
    echo '<p>Đây là hành động tùy chỉnh của tôi!</p>';
}

Nếu bạn đã truyền dữ liệu vào do_action(), hàm của bạn cũng cần khai báo các tham số tương ứng để nhận dữ liệu đó:

function my_custom_action_function( $arg1, $arg2 ) {
    // Sử dụng $arg1 và $arg2 trong hàm của bạn
    echo '<p>Giá trị tham số 1: ' . esc_html( $arg1 ) . '</p>';
    echo '<p>Giá trị tham số 2: ' . esc_html( $arg2 ) . '</p>';
}

Móc” hàm vào action hook bằng add_action()

Cuối cùng, bạn cần sử dụng hàm add_action() để liên kết hàm xử lý của bạn với action hook đã tạo. Thông thường, bạn sẽ đặt đoạn mã này trong file functions.php của theme hoặc trong file chính của plugin.

add_action( 'ten_action_hook_cua_ban', 'my_custom_action_function' );
  • Tham số đầu tiên là tên của action hook bạn đã khai báo.
  • Tham số thứ hai là tên của hàm xử lý bạn đã tạo.
  • Bạn cũng có thể chỉ định độ ưu tiên (tham số thứ ba, số càng nhỏ thì độ ưu tiên càng cao, mặc định là 10) và số lượng tham số mà hàm của bạn chấp nhận (tham số thứ tư, mặc định là 1)
add_action( 'ten_action_hook_cua_ban', 'my_custom_action_function', 20, 2 );

Giả sử bạn muốn thêm một đoạn text tùy chỉnh sau tiêu đề của mỗi bài viết.

Chọn vị trí và khai báo action hook: Trong file single.php của theme bạn (hoặc một template part hiển thị tiêu đề), bạn có thể thêm:

<h1><?php the_title(); ?></h1>
<?php do_action( 'tccntt_after_post_title' ); ?>

Tạo hàm xử lý: Trong file functions.php của theme

function tccntt_add_custom_text_after_title() {
    echo '<div class="custom-text">Đây là đoạn text tùy chỉnh sau tiêu đề.</div>';
}

“Móc” hàm vào action hook: Cũng trong file functions.php

add_action( 'tccntt_after_post_title', 'tccntt_add_custom_text_after_title' );

Bây giờ, khi bạn xem một bài viết đơn lẻ, đoạn text “Đây là đoạn text tùy chỉnh sau tiêu đề.” sẽ hiển thị ngay bên dưới tiêu đề.

Lưu ý quan trọng:

  • Tính duy nhất của tên hook: Hãy đảm bảo tên action hook của bạn là duy nhất để tránh xung đột không mong muốn với các theme hoặc plugin khác. Sử dụng tiền tố riêng là một cách tốt để đảm bảo điều này.
  • Vị trí khai báo do_action(): Việc chọn đúng vị trí để khai báo action hook là rất quan trọng để hành động của bạn được thực thi đúng thời điểm.
  • Nơi đặt add_action(): Thông thường, các hàm add_action() được đặt trong file functions.php của theme hoặc trong file chính của plugin. Điều này đảm bảo chúng được tải khi WordPress khởi động.

Hy vọng hướng dẫn này giúp bạn hiểu rõ cách tạo custom action hook trong WordPress.

  • Hooks
  • May 9, 2025
  • 0 comment
  • 22 views

Recent posts

Cuộc chiến không hồi kết: “Trình duyệt CC” chặn quảng cáo

Cuộc chiến không hồi kết: “Trình duyệt CC” chặn quảng cáo

Người dùng internet không còn lạ lẫm gì trước những “chiêu” được “hãng Y” sử dụng, nhằm hạn chế việc […]

Windows có lỗ hổng nghiêm trọng, Microsoft biết nhưng từ chối sửa

Windows có lỗ hổng nghiêm trọng, Microsoft biết nhưng từ chối sửa

Một lỗ hổng bảo mật trên Windows có “cửa hậu” cho phép đăng nhập bằng mật khẩu cũ. Một phát […]

Apple phát hành iOS 18.5 RC: Sắp ra mắt chính thức?

Apple phát hành iOS 18.5 RC: Sắp ra mắt chính thức?

Apple phát hành phiên bản Release Candidate (RC) của iOS 18.5 và iPadOS 18.5 đến các nhà phát triển cũng như người dùng tham gia […]

Apple cập nhật ứng dụng Move to iOS, nâng cấp tốc độ truyền tải

Apple cập nhật ứng dụng Move to iOS, nâng cấp tốc độ truyền tải

Move to iOS là ứng dụng của Apple để giúp người dùng Android khi chuyển sang hệ sinh thái của Apple, cụ thể là iOS […]

Apple phát cảnh báo khẩn cấp về phần mềm gián điệp trên iPhone

Apple phát cảnh báo khẩn cấp về phần mềm gián điệp trên iPhone

Apple vừa phát đi cảnh báo khẩn đến người dùng iPhone tại hơn 100 quốc gia, cho biết thiết bị […]

© 2021 Tạp Chí CNTT. Mr Hoang