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
  • 136 views

Recent posts

Microsoft cảnh bảo một chiến dịch tấn công mạng nguy hiểm quy mô toàn cầu

Microsoft cảnh bảo một chiến dịch tấn công mạng nguy hiểm quy mô toàn cầu

Microsoft đã gióng lên hồi chuông cảnh báo về Lumma Stealer, một loại mã độc chuyên đánh cắp thông tin, […]

Google Chrome hiện có thể thay đổi mật khẩu yếu cho người dùng

Google Chrome hiện có thể thay đổi mật khẩu yếu cho người dùng

Một tính năng đột phá vừa được Google chính thức ra mắt trên trình quản lý mật khẩu tích hợp […]

Google cho dịch giọng nói trực tiếp trong cuộc gọi

Google cho dịch giọng nói trực tiếp trong cuộc gọi

Google bắt dầu triển khai tính năng dịch giọng nói trực tiếp trong cuộc gọi, khẳng định có thể khớp […]

iPhone sẽ bị ‘vứt xó’ trong những năm tới, nhường bước cho các công nghệ mới

iPhone sẽ bị ‘vứt xó’ trong những năm tới, nhường bước cho các công nghệ mới

Những chiếc iPhone đã sống đủ lâu với ngôi vị quán quân di động, đã đến lúc sẽ có công […]

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 […]

© 2021 Tạp Chí CNTT. Mr Hoang