Trang chủWordpressAdd_filter trong Wordpress: Tác dụng và cách phân biệt với Action

Add_filter trong Wordpress: Tác dụng và cách phân biệt với Action

Thứ Sáu, 4/7/2023, 10:29:25 PM like 92
Add_filter trong Wordpress là hook có vai trò quan trọng trong lập trình Wordpress. Dưới đây là tác dụng và cách phân biệt chúng đơn giản, hiệu quả.

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 Worlpress 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ìm hiểu chung 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 Fiter 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.

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 core thì chỉ sau quá trình update thì đ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

Ví dụ về Wordpress Filters

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ừ freetuts.net ở đầ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ữ freetuts.net vào chuỗi

function add_string_to_title($title)

{

    return 'freetuts.net - ' . $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_fiter để 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ề.

Phân biệt Actions và Filters trong Wordpress

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.

 

 

Sử dụng

 

Actions Hook sử dụng rất nhiều trong việc thiết kế theme, để nó can thiệp vào một hành động nào đó trong theme mà không cần phải đụng chạm đến mã nguồn của WP.

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,…

Cú pháp

add_action ($tag, $function, $priority = 10, $accepted_args = 1 )

add_filter ( $tag, $function, $priority = 10, $accepted_args = 1 )

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.



CÓ THỂ BẠN QUAN TÂM

Xem nhiều nhất

thuê VPS giá rẻ