Trong lập trình Wordpress, Add_filter được sử dụng thường xuyên và trở thành một phần không thể thiếu. Vậy Add_filter trong Wordpress có gì đặc biệt? Làm cách nào để phân biệt chính xác ứng dụng này? Cùng theo chân Gofiber tìm hiểu và khám phá các bạn nhé!
Tổng quan về Filter Wordpress
Trong Wordpress filter, các hook được biết đến như một bộ lọc, bởi nó liên quan trực tiếp đến quá trình xử lý nội dung dữ liệu. Trên Wordpress hiện có rất nhiều loại Filter khác nhau với những tính năng, công dụng nhất định.
Trong các filter của Wordpress, đặc điểm chung là mỗi hook sẽ đưa về những nội dung nhất định. Theo đó, người dùng sẽ sử dụng hàm add_filter để bổ sung các thao tác, hành động vào hook.
Trong Wordpress hàm add_filter có cấu trúc dạng:
add_filter ( $tag, $function_to_add, $priority = 10, $accepted_args = 1 )
Cụ thể trong đó:
-
$tag: Tên của Filter hook đó
-
$function_to_add: Hàm callback mà người dùng muốn thêm vào $tag
-
$priority: Mức độ ưu tiên của hàm callback, giá trị mặc định là 10. Cứ hàm callback nào có mức độ ưu tiên càng cao thì hàm đó sẽ được gọi trước.
-
$accepted_args: Tổng của các tham số tham gia vào hàm callback, tuy nhiên tổng này không được vượt quá tổng số hook. Thông thường, giá trị mặc định của $accepted_args là 1.
Ví dụ: Bạn có thể thay đổi tiêu đề theo id bài viết với hàm "the_title" trong WordPress bằng cách sử dụng hàm add_filter như sau:
add_filter('the_title', 'my_custom_title', 10, 2); function my_custom_title($title, $id) { $arr_id_chage_title = [10,11,13,17]; if( in_array($id, $arr_id_chage_title) ) { $title = $title . ' - Gofiber'; } return $title; }
Theo ví dụ trên, hàm "my_custom_title" sẽ được thực hiện với mức độ ưu tiên là 10 và có 2 tham số là $title và $id. Và các số 10, 11, 13, 17 là Id của các bài viết bạn muốn thêm chữ "Gofiber" vào tiêu đề (Các số này bạn có thể tùy chỉnh theo mục đích của mình).
Các bước thực hiện hàm add_filter trong Wordpress
Để thực hiện hàm add_filter trong Wordpress, bạn có làm theo các bước sau:
Bước 1: Xác định tên hàm và tên bộ lọc thông qua các tài liệu của Wordpress hoặc có thể sử dụng công cụ Debug Bar.
Bước 2: Viết hàm tùy chỉnh để thay đổi giá trị của hàm gốc.
Bước 3: Sử dụng hàm add_filter để thêm hàm tùy chỉnh vào danh sách bộ lọc. Bạn cần thêm các thông số cần thiết như tên bộ lọc, tên hàm, mức độ ưu tiên và số lượng tham số.
Bước 4: Kiểm tra và đảm bảo hàm tùy chỉnh hoạt động chính xác.
Tác dụng của add_filter trong Wordpress
Trong Wordpress, add_filter giữ vai trò vô cùng quan trọng, giúp dễ dàng thay đổi tại nơi sử dụng nó việc xuất dữ liệu ra. Đây được ví như là điểm neo mà người dùng có thể thay đổi dữ liệu mà không cần phải trực tiếp sửa code tại chính chỗ đó. Trên thực tế, nếu bạn sửa trực tiếp vào code thì chỉ sau quá trình update đoạn code thêm vào sẽ mất đi. Điều này cũng đồng nghĩa rằng các tính năng mới thêm vào nó cũng sẽ biến mất.
Hiện nay, sự có mặt của API Filter Hook trong Wordpress vô cùng quan trọng. Đây là công cụ để bạn có thể tùy chỉnh chức năng mà không cần đến sự thay đổi code ban đầu tại core. Là một nhà phát triển thêm hay plugin, bạn nên chú trọng tạo ra các điểm neo với filter hook. Điều này giúp bạn dễ dàng tùy chỉnh hơn với chính theme hay plugin của mình.
>>> Xem thêm: Những bước cơ bản để đăng nhập vào Wordpress
Một số ví dụ về add_filter trong Wordpress
Dưới đây là một số ví dụ về việc sử dụng filter hook điển hình, có sẵn trong Wordpress, bạn có thể tham khảo.
Sử dụng hook "the_title" để điều chỉnh tiêu đề bài viết
Trong quá trình sử dụng, trường hợp người dùng muốn tiêu đề khi in ra có thêm từ Gofiber.vn ở đầu. Lúc này, bạn thực hiện như sau:
Bước 1: Tiến hành mở file hook-filter.php và code
Quá trình mở và code như sau:
// Hàm bổ sung chữ Gofiber.vn vào chuỗi function add_string_to_title($title) { return 'Gofiber.vn - ' . $title; } // Đưa hàm add_string_to_title vào hook filter the_title add_filter('the_title', 'add_string_to_title', 10, 1);
Trong đó cụ thể:
-
the_title: Hook filter sử dụng để lấy tiêu đề bài viết
-
add_string_to_title: Tên hàm mà người dùng muốn bổ sung vào hook the_title
Bước 2: Hook the_title truyền tiêu đề bài viết đến hàm add_string_to_title và thực thi.
Sau khi code, the_title sẽ tiến hành truyền tiêu đề của bài viết vào hàm add_string_to_title. Tiếp đến sẽ tiến hành thực thi hàm này và lấy kết quả của hàm trả về làm tiêu đề. Giả sử hàm the_title có nội dung:
function the_title() { $title = 'Nội dung lấy từ CSDL'; // Trả về return $title; }
Bước 3: Bổ sung hàm bằng cách sử dụng hàm add_filter
Tiếp theo, người dùng cần sử dụng hàm add_filter để bổ sung hàm callback add_string_to_title vào the_title. Cách thức thực hiện như sau:
function the_title() { $title = 'Nội dung lấy từ CSDL'; // Vì có bổ sung hàm callback add_string_to_title // nên lúc này ta phải duyệt title trước khi trả về $title = add_string_to_title($title); // Trả về return $title; }
Như vậy, có thể hiểu đơn giản là khi bổ sung hành động nào đó vào filter tức là bạn bổ sung đoạn code xử lý trước khi filter đó trả kết quả về.
Sử dụng hook "the_content" để in đậm từ khóa
function gofiber_content_filter( $content ) { $find = ‘hello’; $replacement = "<strong>hello</strong>"; $content = str_replace( $find, $replacement, $content ); return $content; } add_filter( ‘the_content’, ‘gofiber_content_filter’ );
Sử dụng hook "wp_handle_upload_prefilter" để đổi tên tập tin sau khi upload lên server
Hook wp_handle_upload_prefilter được sử dụng để lọc tập tin upload lên Media Library của Wordpress. Dưới đây là ví dụ sử dụng tham số $file để đổi tên tập tin sau khi upload lên server.
<?php add_filter(‘wp_handle_upload_prefilter’, ‘custom_upload_filter’ ); function custom_upload_filter( $file ){ $file[‘name’] = ‘wordpress-is-awesome-‘ . $file[‘name’]; return $file; } ?>
Phân biệt Actions và Filters Hook trong Wordpress
Vì sao cần phải phân biệt Actions và Filters
Việc phân biệt Actions hook và Filter hook giúp bạn hiểu rõ vai trò và ứng dụng của từng loại hook trong WordPress. Điều này giúp bạn sử dụng chúng một cách đúng đắn và linh hoạt, từ đó tạo ra các tùy chỉnh và mở rộng tính năng của WordPress một cách hiệu quả và không làm thay đổi mã nguồn gốc. Dưới đây là tầm quan trọng của việc phân biệt hai loại hook này:
- Hiệu quả trong tùy chỉnh: Actions hook và Filters hook cung cấp cho bạn khả năng tùy chỉnh và mở rộng chức năng của WordPress mà không cần can thiệp trực tiếp vào mã nguồn gốc. Sự phân biệt giữa hai loại hook này giúp bạn áp dụng đúng công cụ vào từng tình huống cụ thể, tăng tính linh hoạt và hiệu quả của quá trình tùy chỉnh.
- Bảo trì và nâng cấp dễ dàng: Khi sử dụng Actions hook và Filters hook, bạn có thể thực hiện các tác động và thay đổi mà không cần sửa đổi trực tiếp mã nguồn gốc của WordPress. Điều này giúp bảo vệ mã nguồn gốc và dễ dàng nâng cấp phiên bản WordPress mới mà không làm mất các tùy chỉnh đã thực hiện.
- Khả năng tương thích và tích hợp: Việc phân biệt Actions hook và Filters hook trong quá trình phát triển WordPress giúp bạn hiểu rõ cách mà các hooks hoạt động và tương tác với nhau. Điều này làm tăng khả năng tương thích và tích hợp giữa các chức năng, theme và plugin trong hệ thống WordPress.
- Tiện ích trong phát triển độc lập: Việc sử dụng Actions hook và Filters hook cho phép bạn phát triển các plugin hoặc theme độc lập với mã nguồn chính của WordPress. Bằng cách tận dụng các hook có sẵn, bạn có thể tạo ra các phần mở rộng và tính năng tùy chỉnh mà không phụ thuộc vào những thay đổi trong mã nguồn WordPress chính.
- Sự linh hoạt và mở rộng: Actions hook và Filters hook mở ra một thế giới linh hoạt và mở rộng trong việc tùy chỉnh WordPress. Bạn có thể thay đổi, mở rộng và tùy chỉnh các chức năng, dữ liệu và giao diện người dùng một cách dễ dàng và linh hoạt thông qua việc sử dụng đúng loại hook tương ứng.
Phân biệt Actions Hook và Filters Hook
Trên thực tế, có không ít người dùng
nhầm lẫn giữa Actions và Filters trong Wordpress. Để phân biệt giữa 2 tính năng nâng cao này, bạn có thể căn cứ trên các tiêu chí định nghĩa, phạm vi và hàm, cụ thể:
Tiêu chí |
Actions Hook |
Filters Hook |
Định nghĩa |
Actions Hook chính là một điểm neo để người thực hiện một hành động gì đó tại một chu kỳ nhất định. |
Filter Hook là tính năng giúp người dùng có thể sửa lại nội dung các kịch bản PHP trong các phần nhất định mà không cần phải sửa trực tiếp vào mã nguồn. |
Mục đích |
Actions hook được sử dụng để thực hiện các hành động. |
Filter hook được sử dụng để thay đổi dữ liệu. |
Chức năng |
Actions hook thực hiện một hành động cụ thể tại một điểm trong quá trình thực thi. |
Filter hook cho phép thay đổi dữ liệu trước khi nó được sử dụng. |
Ứng dụng và vị trí sử dụng
|
Actions hook thường được sử dụng trong việc thiết kế theme, để thêm các chức năng, tùy chỉnh giao diện hoặc thực hiện các hành động liên quan đến giao diện người dùng. |
Filter Hook được sử dụng nhiều hơn trong các Plugin liên quan đến nội dung. Ví dụ như các Plugin chèn quảng cáo trong nội dung, các Plugin chèn link nofollow,… |
Kinh doanh không thể thiếu website! Thuê VPS cấu hình mạnh, hiệu năng cao, chi phí thấp để sở hữu website WordPress miễn phí và và kiếm tiền online ngay hôm nay!
Add_filter trong Wordpress là tính năng nâng cao, hỗ trợ đặc biệt hiệu quả trong sử dụng Wordpress. Hy vọng rằng những thông tin chia sẻ của Gofiber đã giúp bạn hiểu hơn về nó. Từ đó có thể dễ dàng phân biệt tính năng này cùng với nhiều tính năng nâng cao khác từ Wordpress.