WordPress Hook là một trong những tính năng mạnh mẽ nhất giúp các nhà phát triển dễ dàng tùy chỉnh và mở rộng chức năng của website mà không cần can thiệp trực tiếp vào mã nguồn cốt lõi. Hooks trong WordPress được chia thành hai loại chính: Action Hook và Filter Hook. Bài viết này sẽ giúp bạn hiểu rõ WordPress Hook là gì, cách sử dụng Action Hook và Filter Hook hiệu quả, từ đó nâng cao khả năng tối ưu hóa và phát triển website một cách chuyên nghiệp.
WordPress Hook là gì?
WordPress Hook là gì? WordPress Hook là một cơ chế mạnh mẽ cho phép các nhà phát triển thay đổi hành vi của các hàm và lớp có sẵn hoặc thậm chí thêm mới các chức năng mà không cần chỉnh sửa trực tiếp vào mã nguồn cốt lõi của WordPress. Điều này giúp đảm bảo rằng các tùy chỉnh bạn thực hiện sẽ không bị mất đi khi cập nhật phiên bản WordPress mới.
Thông qua hệ thống hooks, các nhà phát triển có thể can thiệp và sửa đổi gần như mọi khía cạnh của mã nguồn WordPress. Từ việc điều chỉnh cách lưu trữ bài đăng, tùy chỉnh giao diện hiển thị các widget, đến việc xác định các trang sẽ xuất hiện trong bảng điều khiển quản trị, tất cả đều có thể thực hiện thông qua hooks.

Không chỉ dừng lại ở việc chỉnh sửa tính năng có sẵn, hooks còn cho phép phát triển các chủ đề (themes) tùy chỉnh, plugin, hoặc ứng dụng của bên thứ ba. Với sự hỗ trợ từ hooks, các nhà phát triển có thể tạo ra các tính năng vượt xa khả năng mặc định của WordPress, mang đến trải nghiệm độc đáo hơn cho người dùng.
Việc sử dụng hook đòi hỏi bạn phải có kiến thức về PHP và hiểu rõ cấu trúc hoạt động của WordPress. Vì vậy, công cụ này thường phù hợp với các nhà phát triển có kinh nghiệm hoặc những người đã quen thuộc với việc lập trình trên nền tảng này. Tuy nhiên, ngay cả khi bạn không phải là một lập trình viên chuyên nghiệp, hiểu cơ bản về hook cũng có thể giúp bạn tùy chỉnh website một cách hiệu quả mà không cần can thiệp vào các tệp lõi.
Dù yêu cầu kỹ năng nhất định, nhưng hooks được xem là một công cụ vô giá cho bất kỳ ai muốn cá nhân hóa trang web của mình mà vẫn đảm bảo tính ổn định và bảo mật cho hệ thống.
Filter Hook trong WordPress là gì?
Bên cạnh các loại hook thông thường, WordPress còn cung cấp một dạng đặc biệt gọi là Filter Hook. Đây là loại hook cho phép các nhà phát triển lọc và chỉnh sửa dữ liệu trước khi dữ liệu đó được gửi đến trình duyệt hoặc lưu trữ vào cơ sở dữ liệu.
Filter Hook cực kỳ hữu ích khi bạn muốn thay đổi đầu ra của dữ liệu, chẳng hạn như điều chỉnh cách hiển thị thông tin trên trang hoặc ngăn chặn dữ liệu không mong muốn được lưu vào hệ thống. Ví dụ, bạn có thể sử dụng filter để hỗ trợ thêm thẻ HTML vào tiêu đề bài viết, thay đổi cách hiển thị ngày tháng, hoặc thậm chí thay thế từ ngữ bằng các từ đồng nghĩa phù hợp hơn.

Filter Hooks cho phép các nhà phát triển thực hiện những điều chỉnh nhỏ nhưng hiệu quả trên trang web mà không cần chỉnh sửa trực tiếp vào mã nguồn cốt lõi. Chỉ với vài dòng mã, bạn đã có thể tạo ra những thay đổi lớn về mặt giao diện và trải nghiệm người dùng.
Việc sử dụng filter hooks là một phần không thể thiếu trong quá trình phát triển các giải pháp tùy chỉnh cho WordPress. Khi bạn nắm vững công cụ này và có đủ kiến thức lập trình, bạn có thể tạo ra những tính năng vượt trội, vượt xa những gì WordPress cung cấp mặc định.
Action Hook trong WordPress là gì?
Action Hook trong WordPress là một công cụ mạnh mẽ cho phép các nhà phát triển thêm hoặc kích hoạt các chức năng tùy chỉnh tại những điểm nhất định trong mã nguồn WordPress. Điều này giúp mở rộng khả năng của WordPress mà không cần chỉnh sửa trực tiếp vào mã cốt lõi.

Khác với Filter Hook, vốn chỉ dùng để thay đổi hoặc lọc dữ liệu trước khi hiển thị lên trình duyệt hoặc lưu vào cơ sở dữ liệu, Action Hook lại được dùng để thực thi các hành động cụ thể khi xảy ra các sự kiện nhất định. Chẳng hạn như khi một bài đăng được lưu, người dùng đăng nhập thành công, hoặc khi một trang được tải lên, bạn có thể dùng Action Hook để kích hoạt những chức năng tùy chỉnh phù hợp.
Hướng dẫn sử dụng Action Hook
Hướng dẫn sử dụng Filter Hook
Cách gắn Filter vào Hook
Để thêm một Filter vào một hook cụ thể trong WordPress, bạn sử dụng hàm add_filter(). Đây là công cụ mạnh mẽ giúp bạn dễ dàng thay đổi dữ liệu trước khi nó được hiển thị trên trình duyệt hoặc lưu vào cơ sở dữ liệu.
Cú pháp:
add_filter( $tag, $function, $priority, $accepted_args );
- $tag: Tên của filter hook trong WordPress.
- $function: Tên hàm xử lý filter mà bạn muốn thêm vào hệ thống.
- $priority: Độ ưu tiên của filter (giá trị càng thấp, filter sẽ được thực hiện trước).
- $accepted_args: Số lượng tham số mà filter sẽ truyền vào hàm của bạn.
Ví dụ: Thay đổi tiêu đề của bài viết trong WordPress:
add_filter('the_title', 'fr_post_title', 10); function fr_post_title() { return 'Title'; }
Hoặc nếu bạn đang sử dụng trong một lớp (class):
add_filter('the_title', array($this, 'theTitle')); public function theTitle() { return 'Title'; }
Cách loại bỏ Filter khỏi Hook
Để gỡ bỏ một Filter khỏi một hook nào đó, bạn sử dụng hàm remove_filter(). Điều này giúp bạn kiểm soát và vô hiệu hóa các thay đổi không mong muốn trên trang web của mình.
Cú pháp:
remove_filter( $tag, $function, $priority );
- $tag: Tên của filter hook mà bạn muốn gỡ bỏ.
- $function: Tên hàm filter mà bạn muốn loại bỏ.
- $priority: Độ ưu tiên của filter (phải giống với độ ưu tiên khi thêm filter).
Ví dụ: Loại bỏ filter convert_smilies khỏi nội dung bài viết:
remove_filter('the_content', 'convert_smilies');
Cách loại bỏ tất cả Filter khỏi Hook
Khi bạn muốn gỡ bỏ tất cả các filter đã được thêm vào một hook cụ thể, hàm remove_all_filters() sẽ giúp bạn làm điều đó dễ dàng.
Cú pháp:
remove_all_filters( $tag, $priority );
- $tag: Tên của filter hook bạn muốn loại bỏ toàn bộ filter.
- $priority: (Tùy chọn) Chỉ loại bỏ các filter có độ ưu tiên nhất định.
Ví dụ: Gỡ bỏ tất cả filter khỏi hook the_content:
remove_all_filters('the_content');
Nếu bạn muốn chỉ loại bỏ các filter có độ ưu tiên 10:
remove_all_filters('the_content', 10);
Cách kiểm tra sự tồn tại của Filter trong Hook
Để xác định xem một filter cụ thể đã được thêm vào một hook hay chưa, bạn sử dụng hàm has_filter().
Cú pháp:
has_filter( $tag, $function_to_check );
- $tag: Tên của filter hook bạn muốn kiểm tra.
- $function_to_check: Tên hàm filter bạn muốn kiểm tra xem đã được thêm vào hook chưa.
Ví dụ: Kiểm tra xem filter convert_smilies đã được thêm vào hook the_content chưa:
echo has_filter('the_content', 'convert_smilies');
Hàm này sẽ trả về 1 hoặc true nếu filter đã tồn tại, và trả về 0 hoặc null nếu không có filter nào được gắn vào.
Cách lấy tên Filter đang hoạt động
Nếu bạn muốn biết tên của filter đang hoạt động tại một thời điểm cụ thể trong quá trình xử lý, bạn có thể sử dụng hàm current_filter().
echo current_filter();
Hàm này sẽ trả về tên của filter hiện tại đang được thực thi, giúp bạn dễ dàng kiểm soát và xác định thứ tự xử lý trong các hook phức tạp.
Dù bạn muốn thêm tính năng mới, chỉnh sửa dữ liệu đầu ra hay vô hiệu hóa các hành vi không mong muốn, hệ thống hook và filter của WordPress đều mang lại cho bạn sự linh hoạt tối đa.

Hướng dẫn sử dụng Action Hook
Cách gắn Action vào Hook
Để thêm một hành động vào một vị trí (hook) cụ thể trong WordPress, bạn sẽ sử dụng hàm add_action() với cú pháp sau:
add_action( $tag, $function, $priority, $accepted_args );
- $tag: Tên của action hook trong WordPress (WordPress có hơn 600 hooks có sẵn).
- $function: Tên hàm mà bạn muốn gắn vào hook để thực hiện hành động.
- $priority: Độ ưu tiên của hành động. Giá trị càng nhỏ thì hành động càng được thực hiện trước.
- $accepted_args: Số lượng tham số mà hook sẽ truyền vào hàm của bạn.
Ví dụ: Thêm nội dung vào footer của trang:
add_action('wp_footer', 'fr_myplugin_footer'); function fr_myplugin_footer() { echo '<div>Chào mừng bạn đến với footer!</div>'; }
Trong ví dụ này, khi trang được tải, đoạn văn bản “Chào mừng bạn đến với footer!” sẽ tự động được thêm vào cuối trang nhờ sử dụng hook wp_footer.
Cách loại bỏ Action ra khỏi Hook
Nếu bạn muốn gỡ bỏ một hành động đã được gắn vào hook, bạn có thể sử dụng hàm remove_action() với cú pháp:
remove_action( $tag, $function_to_remove, $priority, $accepted_args );
- $tag: Tên của action hook mà bạn muốn gỡ bỏ.
- $function_to_remove: Tên hàm mà bạn muốn loại bỏ khỏi hook.
- $priority: Độ ưu tiên của hành động đã được thêm vào (phải khớp với giá trị khi thêm).
- $accepted_args: Số lượng tham số đã được truyền vào khi thêm action.
Ví dụ: Thêm một file CSS vào header và sau đó loại bỏ nó:
function fr_myplugin_css() { $cssURL = plugins_url('/css/abc.css', __FILE__); echo '<link rel="stylesheet" type="text/css" media="all" href="' . $cssURL . '" />'; } add_action('wp_head', 'fr_myplugin_css', 20); remove_action('wp_head', 'fr_myplugin_css', 20);
Ở đây, đoạn mã CSS sẽ được thêm vào phần head của trang nhờ hook wp_head, nhưng sau đó sẽ bị loại bỏ bằng hàm remove_action().
Cách loại bỏ tất cả Action khỏi Hook
Nếu bạn muốn loại bỏ tất cả các hành động đã được gắn vào một hook cụ thể, bạn có thể sử dụng hàm remove_all_actions() với cú pháp:
remove_all_actions( $tag, $priority );
- $tag: Tên của action hook mà bạn muốn xóa hết các hành động.
- $priority: (Tùy chọn) Chỉ loại bỏ các hành động có độ ưu tiên cụ thể.
Ví dụ: Loại bỏ tất cả các hành động khỏi hook wp_head:
remove_all_actions('wp_head');
Nếu bạn chỉ muốn loại bỏ các hành động có độ ưu tiên 20:
remove_all_actions('wp_head', 20);
Cách kiểm tra sự tồn tại của Action trong Hook
Để kiểm tra xem một hành động đã được gắn vào một hook hay chưa, bạn có thể sử dụng hàm has_action():
has_action( $tag, $function_to_check );
- $tag: Tên của action hook mà bạn muốn kiểm tra.
- $function_to_check: Tên hàm mà bạn muốn kiểm tra xem đã được thêm vào hook chưa.
Ví dụ: Kiểm tra xem hook wp_head có chứa Action nào không:
echo '<br/>' . has_action('wp_head');
Nếu hook này có Action được gắn vào, kết quả sẽ trả về 1 hoặc true.
Ngược lại, nếu không có Action nào được gắn vào hook, hàm sẽ trả về 0 hoặc null.
echo '<br/>' . has_action('wp_footer');
Hiểu rõ và sử dụng thành thạo Action Hook sẽ giúp bạn mở rộng và tùy chỉnh website WordPress một cách linh hoạt và chuyên nghiệp hơn. Dù đòi hỏi kiến thức về PHP và cơ chế hoạt động của WordPress, nhưng một khi nắm vững, bạn sẽ có thể tạo ra những tính năng mạnh mẽ, nâng cao trải nghiệm người dùng và tối ưu hiệu suất trang web của mình.
Qua bài viết, hy vọng bạn đã hiểu rõ WordPress Hook là gì (bao gồm Action Hook, Filter Hook) và áp dụng hiệu quả các tính năng cơ bản của WordPress, từ đó góp phần nâng cao quá trình tối ưu hóa website của mình.
InterData, một đơn vị tiên phong trong lĩnh vực Công nghệ thông tin, chuyên cung cấp dịch vụ máy chủ ảo chất lượng giá rẻ chỉ từ 95K/tháng, dịch vụ Hosting tốc độ cao cấu hình linh hoạt đáp ứng mọi nhu cầu của khách hàng. Với nền tảng công nghệ tiên tiến cùng đội ngũ chuyên gia dày dặn kinh nghiệm, InterData tự hào mang đến cho khách hàng những giải pháp máy chủ ảo tối ưu nhất.
Ngoài ra, InterData còn cung cấp dịch vụ Cloud Server mạnh mẽ với khả năng mở rộng dễ dàng, lý tưởng cho các hệ thống lớn. Nếu bạn cần một giải pháp mạnh mẽ hơn, hiệu suất cao hơn, dịch vụ thuê Server vật lý cấu hình mạnh tại InterData là một giải pháp đáng cân nhắc, máy chủ vật lý mang lại hiệu suất vượt trội và mức độ bảo mật cao, đảm bảo doanh nghiệp vận hành hệ thống một cách an toàn và bền vững.
INTERDATA
- Website: Interdata.vn
- Phone: 1900.636822
- Email: [email protected]
- VPĐD: 240 Nguyễn Đình Chính, P.11. Q. Phú Nhuận, TP. Hồ Chí Minh
- VPGD: Số 211 Đường số 5, KĐT Lakeview City, P.An Phú, Tp.Thủ Đức, TP. Hồ Chí Minh