Table of Contents
Filter Hook là gì
Filter hook giúp biến hóa thuận tiện tại nơi sử dụng nó việc xuất dữ liệu ra như nào. Nó giống như một điểm neo nơi mà bạn hoàn toàn có thể biến hóa tài liệu mà bạn không phải trực tiếp sửa code tại chỗ đó. Bởi vì nếu bạn sửa trực tiếp vào core thì sau này khi update đoạn code bạn thêm vào sẽ mất đi. Như vậy những tính năng bạn thêm mới vào cũng sẽ biến mất .
Việc xuất hiện của API Filter Hook trong WordPress là rất quan trọng. Nó giúp bạn thuận tiện tùy chỉnh những tính năng mà không cần biến hóa code khởi đầu của core .
Nếu bạn là một nhà phát triển theme hay plugin. Bạn cũng cần phải chú ý tạo ra các điểm neo với filter hook. Nó sẽ giúp người dùng dễ dàng tùy chỉnh hơn với theme hay plugin của bạn.
Cách dùng Filter Hook. apply_filters trong wordpress
apply_filters trong wordpress. Cách dùng filter hook
Trong filter hook bạn cần quan tâm tới hai hàm quan trọng là apply_filters ( ) và add_filter ( ) .
- apply_filters trong wordpress giúp tạo ra điểm neo để bạn có thể thay đổi dữ liệu xuất ra.
- add_filter trong wordpress giúp bạn thay đổi dữ liệu xuất ra tại vị trí bạn sử dụng apply_filters trong wordpress
Sau đây mình sẽ lấy ví dụ nhỏ về cách dùng apply_filters trong wordpress để tạo điểm neo. Và dùng add_filter trong wordpress để đổi khác tài liệu xuất ra tại điểm neo đó .
Sử dụng apply_filters ( bạn sử dụng ở nơi muốn xuất dữ liệu ) :
Sử dụng add_filter để biến hóa đoạn chữ trên mà không đổi khác code trên. Bạn sử dụng ở file function.php trong theme :
add_filter('chuanseoweb_hello_world', 'csw_change_text');
function csw_change_text( $text ) {
$text = 'Change text';
return $text;
}
Ở đây bạn cần chú ý đến tên: chuanseoweb_hello_world nó là filter hook do bạn tạo ra như một điểm neo. Trong trường hợp bạn muốn thay đổi nội dung xuất ra trong core. Thì bạn cần biết đến tên này rồi dùng hàm add_filter. Hàm csw_change_text bạn có thể đặt tùy theo ý mình sao cho bạn dễ hiểu là được.
Bạn hoàn toàn có thể tìm hiểu thêm list những filter hook trong WordPress ở đường link sau : Filter Hook list codex
Vừa rồi là ví dụ về cách bạn tạo ra điểm neo vơi apply_filter và thay đổi với add_filter. Sau đây mình sé ví dụ về việc thay đổi tiêu đề theo id bài viết. Nghĩa là với một số bài viết mình muốn tiêu đề của nó thay đổi theo ý muốn của mình. Mính sử dụng filter the_title do WordPress cung cấp. Bạn sử dụng đoạn code sau vào file function.php:
add_filter('the_title', 'csw_change_title', 10, 2);
function csw_change_title($title, $id) {
$arr_id_chage_title = [1,2,5,18];
if( in_array($id, $arr_id_chage_title) ) {
$title = $title. ' - Chuẩn Seo Web';
}
return $title;
}
- the_title là tên hook. Là điểm neo mà core wordpress tạo sẵn bằng hàm apply_filter
- csw_change_title là hàm bạn thêm tùy ý sao cho bạn dễ hiểu ý nghĩa của nó
- 10: là độ ưu tiên của hàm bạn dùng. Nghĩa là với một điểm neo bạn có thể dùng nhiều add_filter. Độ ưu tiên này cho phép bạn biết hàm nào chạy trước hàm nào chạy sau.
- 2: Số lượng tham số bạn truyền vào. Ở đây mình truyền cả hai tham số là $title và $id
- Ở đây mình muốn nối thêm vào tiêu đề chữ : Chuẩn Seo Web. Với những bài viết có id là 1, 2, 5, 18. Bạn có thể thay đổi theo ý mình tùy theo mục đích sử dụng của bạn.
Một số hàm Filter bạn nên biết
Ngoài hai hàm quan trọng nhất là add_filter và apply_filters trong wordpress. Thì bạn cũng cần biết 1 số ít hàm tương quan đến filter sau. Nó sẽ giúp ích bạn nhiều trong quy trình tăng trưởng theme hay plugin .
Loại bỏ một hàm đang móc vào filter hook
Bạn sử dụng hàm remove_filter( $hook_name, $callback, $priority )
- $hook_name là tên hook
- $callback, là tên hàm bạn muốn xóa khỏ hook_name
- $priority là thứ tự ưu tiên cái nào xóa trước cái nào xóa sau. Bạn có thể để trống với mặc định bằng 10.
Loại bỏ tổng thể những hàm đang móc vào 1 filter hook
Bạn sử dụng remove_all_filters( $hook_name, $priority )
- $hook_name là tên hook
- $priority là số thứ tự ưu tiên, giá trị mặc định là false
Kiểm tra xem hook có sống sót hay không
Bạn sử dụng hàm has_filter( $hook_name, $callback )
- $hook_name là tên hook
- $callback: Là tên hàm callback có đang móc vào hook name không. Bạn có thể để trống nó với giá trị mặc định là false
Kết Luận
Qua bài viết trên Chuẩn Seo Web đã giúp bạn cách dùng Filter Hook. Giúp bạn hiểu hơn về cách dùng add_filter, apply_filters trong wordpress. Mình kỳ vọng sẽ giúp ích cho bạn. Nếu bạn có câu hỏi hay vướng mắc nào bạn vui mừng để lại phản hồi bên dưới. Cám ơn bạn đã theo dõi bài viết .
Source: https://wikifin.net
Category: Blog