Để tận dụng toàn bộ tiềm năng của WordPress, chúng ta cần hiểu rõ các công cụ và tính năng có sẵn. Trong số đó, add_filter là một trong những hàm quan trọng mà bạn có thể sử dụng để tùy chỉnh chức năng của trang web theo ý muốn. Bài viết hôm nay sẽ hướng dẫn bạn cách dùng Add_filter trong WordPress chi tiết A-Z.
Tổng quan về Add_filter trong WordPress
Add_filter trong WordPress là gì?
Trong WordPress, Add_filter là một hàm được sử dụng để đăng ký các filter, cho phép bạn can thiệp vào quá trình xử lý của WordPress và thay đổi giá trị của các thành phần trước khi chúng được sử dụng hoặc hiển thị trên trang web.
Khi sử dụng add_filter, bạn có thể đăng ký các callback function và liên kết chúng với các filter cụ thể. Trong trường hợp filter được kích hoạt, các callback function sẽ được thực thi và có thể thay đổi giá trị của các biến, dữ liệu hoặc kết quả của các hàm trước khi chúng được sử dụng hoặc hiển thị cho người dùng website.
Việc sử dụng add_filter cho phép bạn tùy chỉnh chức năng của WordPress một cách linh hoạt theo ý muốn cá nhân. Ví dụ, bạn có thể sử dụng add_filter để thay đổi tiêu đề của bài viết, điều chỉnh nội dung trước khi hiển thị, tạo các bộ lọc cho URL,..
Hàm Add_filter hoạt động như thế nào?
Khi bạn sử dụng hàm Add_filter trong WordPress, bạn đang thực hiện việc đăng ký một callback function với một filter cụ thể. Điều này cho phép bạn can thiệp và thay đổi giá trị của các thành phần trong quá trình xử lý trước khi chúng được sử dụng hoặc hiển thị trên trang web.
Quá trình hoạt động của Add_filter như sau:
- Xác định filter: Đầu tiên, bạn cần xác định tên của filter mà bạn muốn can thiệp vào. Filter có thể là một từ khóa cụ thể hoặc một hằng số đã được định nghĩa trong mã nguồn của WordPress.
- Đăng ký callback function: Bạn sử dụng hàm add_filter để đăng ký một callback function với filter đã xác định. Hàm add_filter có cú pháp như sau: add_filter( ‘filter_name’, ‘ten_callback_function’). Trong đó, ‘filter_name’ là tên của filter và ‘ten_callback_function‘ là tên của hàm callback function mà bạn muốn liên kết với filter đó.
- Thực thi callback function: Khi filter được kích hoạt bằng cách sử dụng hàm apply_filters, các hàm callback function liên kết với filter cũng sẽ được thực thi. Các hàm này nhận các tham số đầu vào, thường là giá trị ban đầu của một biến và thực hiện các thay đổi hoặc xử lý trên giá trị đó.
- Trả về kết quả: Sau khi các hàm callback function đã hoàn thành thay đổi, kết quả cuối cùng được trả về. Thông thường, các hàm callback function sẽ trả về giá trị đã được thay đổi.
Cú pháp và cách sử dụng Add_filter
Đầu tiên, chúng ta phải hiểu rõ các tham số cần được truyền vào hàm add_filter. Cú pháp của hàm như sau:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Trong đó:
- $tag: Đây là tên của filter mà bạn muốn can thiệp vào. Ví dụ, nếu muốn can thiệp vào filter ‘the_title’, bạn sẽ truyền ‘the_title’ vào đây.
- $function_to_add: Đây là tên của hàm callback function mà bạn muốn thực hiện khi filter được kích hoạt. Hàm này sẽ nhận vào giá trị ban đầu của biến hoặc kết quả và trả về giá trị mới sau khi đã can thiệp vào.
- $priority (tùy chọn): Xác định thứ tự ưu tiên của filter. Các filter có cùng $tag sẽ được thực hiện theo thứ tự ưu tiên tăng dần (giá trị mặc định là 10).
- $accepted_args (tùy chọn): Xác định số lượng tham số mà hàm $function_to_add có thể nhận vào. Giá trị mặc định là 1.
Ví dụ, chúng ta có thể sử dụng Add_filter để thay đổi tiêu đề của bài viết trước khi được hiển thị lên trang.
add_filter( 'the_title', 'custom_title_filter' );
function custom_title_filter( $title ) {
// Thay đổi tiêu đề ở đây
return $title;
}
Trong ví dụ trên, bạn sử dụng add_filter để can thiệp vào filter ‘the_title’. Cụ thể, bạn đã định nghĩa một hàm tên là ‘custom_title_filter’ và truyền vào add_filter. Hàm ‘custom_title_filter’ nhận vào giá trị ban đầu của tiêu đề và có thể thực hiện bất kỳ thay đổi nào mà chúng ta muốn trước khi trả về giá trị mới.
Cách dùng Add_filter trong WordPress
Thay đổi độ dài đoạn trích bài viết
add_filter( ‘excerpt_length’, ‘change_length’ );
function change_length( $length )
{
// change the default excerpt length
return 20;
}
Như vậy, bạn đã tạo một hàm thay đổi độ dài đoạn trích của bài đăng mà đối số $length đại diện. Sau đó, bạn tiến hành nối chức năng này với filter extract_length.
Khi dữ liệu đi qua filter, chức năng sẽ chạy và thay đổi sao cho phù hợp. Sau đó, phương thức trả về sẽ giới hạn độ dài đoạn trích là 20 và hiển thị cho người dùng.
Sửa đổi nội dung bài viết
Một trường hợp sử dụng phổ biến của hàm Add_filter là thêm nội dung mới vào các bài đăng trên trang web của bạn. Ví dụ:
add_filter( ‘the_content’, ‘add_disclaimer’ );
function add_disclaimer( $content )
{
// concatenate the content to modify it
return $content .
“<br><center><strong>All writings and opinions are my own“;
}
Trong ví dụ này, ta có filter the_content được kết nối với hàm callback function add_disclaimer. Khi filter được kích hoạt, chức năng này sẽ sửa đổi $content bằng cách nối nó với thông báo All writings and opinions are my own.
Đoạn code này sẽ trả lại nội dung đã sửa đổi cho trình duyệt với tuyên bố từ chối trách nhiệm ở cuối.
Hiển thị hình ảnh cho một danh mục bài đăng cụ thể
Add_filter WordPress cho phép bạn tùy chỉnh các bài đăng với một ID hoặc danh mục cụ thể. Chúng ta hãy cùng tìm hiểu qua ví dụ sau:
add_filter( 'the_content', 'content_filter' );
function content_filter( $content )
{
// condition where the function applies
if ( in_category('premium') )
$content = sprintf(
'<img class="premium-icon"
src="%s/directory/filename.png"alt="Premium Content Icon"
title="" />%s', get_bloginfo( 'stylesheet_directory' ),
$content);
return $content;
}
Trong ví dụ này, bạn đã tạo filter the_content và kết nối với hàm callback function wpb_content_filter. Khi đó, nếu bài đăng thuộc danh mục cao cấp , chức năng filter sẽ thay đổi nội dung bằng cách thêm hình ảnh vào.
Thay đổi số lượng sản phẩm được hiển thị
Add_filter WordPress cũng cho phép bạn sửa đổi plugin thương mại điện tử để tùy chỉnh cửa hàng trực tuyến của mình. Dưới đây là đoạn code tùy chỉnh thay đổi số lượng sản phẩm được hiển thị trên plugin WooCommerce:
add_filter('storefront_products_per_page','alter_sf_products_per_page' );
function alter_sf_products_per_page()
{
// change the default value
return 3 ;
}
Trong đoạn code trên, bạn đã tạo custom filter storefront_products_per_page và kết nối với hàm alter_sf_products_per_page. Khi dữ liệu đi qua, filter sẽ gọi hàm để thay đổi giá trị mặc định từ 12 thành 3 và hiển thị trên trình duyệt của người dùng.
Một số hàm filter khác trong WordPress
Hàm remove_filter()
Hàm này loại bỏ một hàm được liên kết với một filter cụ thể. Các nhà phát triển web thường sử dụng remove_filter() để xóa chức năng mặc định của WordPress mà không xóa hoàn toàn code. Cú pháp như sau:
remove_filter( hook_name, callback_function, priority = 10 );
Hàm doing_filter()
Hàm này kiểm tra xem một chức năng khác hiện có đang được thực thi hay không. doing_filter() nhận một hook name làm tham số và trả về giá trị true or false. Cú pháp như sau:
if doing_filter( 'hook_name’ )
{
// execute a script if the filter is running
};
Hàm has_filter()
Hàm has_filter xác minh xem filter có được áp dụng thành công cho hook hay không. Hàm này sẽ lấy filter name làm tham số đầu tiên và hàm callback function làm tham số thứ hai tùy chọn. Cú pháp của hàm như sau:
has_filter( ‘hook_name’, ‘callback_function’ );
Tóm lại, Add_filter là một hàm quan trọng dùng để sửa đổi dữ liệu trước khi hiển thị trên trang web. Các nhà phát triển web có thể sử dụng hàm này để tùy chỉnh plugin hoặc chủ đề để thêm chức năng bổ sung cho trang web của mình. Hy vọng qua bài viết trên, bạn sẽ biết cách sử dụng hàm Add_filter sao cho hiệu quả nhất. Chúc bạn thành công!
Những câu hỏi thường gặp
Callback function là gì?
Callback function là một loại hàm trong lập trình, được dùng để chuyển đối số cho một hàm khác. Trong trường hợp của Add_filter, callback function là hàm can thiệp mà bạn đăng ký để thực hiện các thay đổi hoặc mở rộng.
Filter hook là gì?
Filter hook là một điểm trong mã nguồn WordPress, cho phép bạn can thiệp vào quá trình xử lý bằng cách đăng ký hàm Callback function thông qua add_filter. Khi filter hook được kích hoạt, các hàm Callback function liên kết với nó sẽ được gọi và thực thi.
Có cần kiến thức chuyên sâu về lập trình để sử dụng add_filter trong WordPress không?
Bạn không cần phải có kiến thức chuyên sâu để sử dụng hàm Add_filter. Tuy nhiên, để áp dụng hàm này một cách hiệu quả, bạn cần có kiến thức cơ bản về lập trình PHP.
Add_filter và Apply_filter có giống nhau không?
Trong WordPress, Add_filter và Apply_filters là hai hàm có mối quan hệ chặt chẽ và có mục đích tương tự nhau, nhưng có một số khác biệt như sau:
- Hàm Add_filter được sử dụng để đăng ký một hàm callback function với một filter hook cụ thể.
- Hàm Apply_filters được sử dụng để kích hoạt các hàm callback function đã đăng ký với một filter hook cụ thể và truyền dữ liệu qua chúng