Filter Hook trong WordPress cho phép bạn “lọc” và sửa đổi dữ liệu trong quá trình xử lý của WordPress. Dưới đây là một số Filter Hook phổ biến và quan trọng, được nhóm theo loại dữ liệu mà chúng thường tác động:
Nội dung bài viết và trang:
the_content
: Lọc nội dung của bài viết hoặc trang trước khi hiển thị. Rất thường được sử dụng để thêm shortcode, định dạng lại nội dung, hoặc chèn quảng cáo.the_excerpt
: Lọc đoạn trích của bài viết trước khi hiển thị.excerpt_length
: Cho phép bạn thay đổi độ dài mặc định của đoạn trích (tính bằng từ).excerpt_more
: Cho phép bạn thay đổi dấu “…” hoặc liên kết “Đọc thêm” ở cuối đoạn trích.the_title
: Lọc tiêu đề của bài viết hoặc trang trước khi hiển thị.wp_title
: Lọc tiêu đề của trang web, thường được sử dụng để điều chỉnh định dạng tiêu đề cho SEO.the_permalink
: Lọc URL (đường dẫn tĩnh) của bài viết hoặc trang.post_class
: Lọc các class CSS được áp dụng cho thẻ<body>
của một bài viết trong vòng lặp.body_class
: Lọc các class CSS được áp dụng cho thẻ<body>
của trang.the_content_more_link
: Lọc liên kết “Đọc tiếp” trong nội dung bài viết.
Tiêu đề và Meta:
wp_title_parts
: Lọc các phần tử tạo nên tiêu đề trang web (ví dụ: tiêu đề bài viết, tiêu đề trang, tên trang web).wp_title_sep
: Lọc dấu phân cách giữa các phần tử của tiêu đề trang web.get_post_metadata
,update_post_metadata
,add_post_metadata
,delete_post_metadata
: Các filter cho phép bạn can thiệp vào quá trình lấy, cập nhật, thêm và xóa meta của bài viết. Tương tự có các filter cho user meta (get_user_metadata
, …), term meta (get_term_metadata
, …).
Đoạn trích và Tóm tắt:
wp_trim_excerpt
: Lọc đoạn trích đã được tạo bởi WordPress trước khi hiển thị. Cho phép bạn tùy chỉnh toàn bộ quá trình tạo đoạn trích.
URL và Liên kết:
the_permalink
: (Đã đề cập ở trên)post_link
,page_link
,attachment_link
,category_link
,tag_link
,author_link
,home_url
,site_url
: Các filter để tùy chỉnh các loại URL khác nhau trong WordPress.rewrite_rules_array
: Lọc mảng các quy tắc rewrite URL. Thường được sử dụng khi tạo custom post type hoặc taxonomy để tùy chỉnh URL.query_vars
: Lọc danh sách các biến truy vấn (query variables) được WordPress nhận diện.
Hình ảnh và Media:
wp_get_attachment_image_attributes
: Lọc các thuộc tính HTML của thẻ<img>
được tạo bởiwp_get_attachment_image()
.wp_prepare_attachment_for_js
: Lọc dữ liệu về attachment trước khi nó được trả về cho JavaScript trong media library.image_size_names_choose
: Lọc danh sách các kích thước hình ảnh hiển thị trong trình chỉnh sửa media.
Người dùng:
authenticate
: Lọc kết quả của quá trình xác thực người dùng.login_redirect
: Lọc URL chuyển hướng sau khi đăng nhập thành công.register_url
: Lọc URL của trang đăng ký.lostpassword_url
: Lọc URL của trang quên mật khẩu.user_contactmethods
: Lọc danh sách các trường thông tin liên hệ hiển thị trong hồ sơ người dùng.
Tùy chọn (Options):
pre_option_{$option_name}
: Được gọi trước khi WordPress truy vấn một tùy chọn cụ thể từ database. Cho phép bạn trả về một giá trị tùy chỉnh mà không cần truy vấn database.option_{$option_name}
: Lọc giá trị của một tùy chọn cụ thể sau khi nó đã được truy vấn từ database.update_option_{$option_name}
: Lọc giá trị của một tùy chọn trước khi nó được cập nhật vào database.add_option_{$option_name}
: Lọc giá trị của một tùy chọn trước khi nó được thêm vào database.default_option_{$option_name}
: Lọc giá trị mặc định của một tùy chọn nếu nó chưa được thiết lập.
HTTP API:
pre_http_request
: Một filter mạnh mẽ cho phép bạn chặn một HTTP request và trả về kết quả tùy chỉnh.http_request_args
: Lọc các arguments được sử dụng để thực hiện HTTP request.http_response
: Lọc toàn bộ HTTP response.wp_http_curl_args
: Lọc các arguments được truyền cho hàmcurl_setopt()
khi sử dụng cURL cho HTTP request.
REST API:
rest_pre_dispatch
: Lọc kết quả trước khi một REST API request được dispatch đến handler của nó.rest_{$this->post_type}_query
: Lọc các arguments được sử dụng để truy vấn các post type cụ thể thông qua REST API.rest_prepare_{$this->post_type}
: Lọc dữ liệu của một post type cụ thể trước khi nó được trả về trong response của REST API.
Khác:
locale
: Lọc ngôn ngữ hiện tại của WordPress.kses_allowed_protocols
: Lọc danh sách các giao thức được cho phép trong quá trình lọc HTML bằngkses
.allowed_http_origins
: Lọc danh sách các origin được phép thực hiện CORS request.
Đây chỉ là một số Filter Hook phổ biến. Tương tự như Action Hook, WordPress cung cấp rất nhiều Filter Hook khác để bạn có thể tùy chỉnh dữ liệu ở nhiều giai đoạn khác nhau.