Filter hook là gì? Hướng dẫn add_filter trong wordpress

Bên cạnh Action Hook, Filter hook là một trong những hook được sử dụng phổ biến trong wordpress. Để có thể add_filter trong wordpress bạn cần biết rõ về fillter hook và cũng như tên hàm và bộ lọc của nó.

Filter hook là gì?

Filter hook (gọi tắt là filter) là khái niệm thường được sử dụng để chỉ việc thực hiện các thay đổi hoặc biến đổi dữ liệu trước khi nó được sử dụng hoặc trả về bởi một hàm hoặc phương thức khác trong mã nguồn của WordPress, plugin hay theme.

Tại đó, bạn có thể dễ dàng mở rộng và tùy chỉnh chức năng trong PHP mà không phải trực tiếp sửa lại code. Điều này cũng giúp khắc phục tình trạng mất code hoặc mất tính năng mới khi sửa trực tiếp vào core. Trong WordPress, API Filter Hook sẽ giúp người dùng dễ dàng tùy chỉnh các chức năng mà không cần thay đổi code ban đầu của core.

Cú pháp và cách sử dụng Add_filter trong wordpress

Đối với filter hook, có hai hàm quan trọng mà bạn đọc cần lưu ý đó là  apply_filters() và add_filter()với chức năng chính cụ thể như sau:

  • apply_filters() cho phép bạn tùy chỉnh hoặc biến đổi dữ liệu trước khi nó được hiển thị hoặc sử dụng trong quá trình thực thi của WordPress.
  • add_filter() trong wordpress được sử dụng để đăng ký hàm xử lý cho các filter hooks, nó cho phép tùy chỉnh hoặc biến đổi dữ liệu trước khi được hiển thị hoặc sử dụng trong quá trình thực thi.

Chúng ta hãy cùng tham khảo ví dụ dưới đây:

Filter Hook được khai báo bằng hàm apply_filters() như thế này (có thể đặt thử vào template footer.php):

				
					<?php
    $copyright = 'Design by upbrandtop1';
    echo apply_filters( 'upbrandtop1_copyright', $copyright );
?>

				
			

Thay vì echo biến $copyright ra đoạn code trên đã cho biến này vào hàm apply_filters(), trong đó upbrand_copyright là tên Filter Hook của mình.

Bây giờ nếu bạn không muốn nó echo cái $copyright nữa mà sẽ là biến khác do tự đặt lại thì chúng ta không cần sửa trực tiếp vào code trên mà có thể tạo ra một hàm callback rồi sử dụng hàm add_filter() để gọi nó. Một lần nữa, đây không phải là template tag nên cho vào functions.php của theme hoặc plugin của bạn.

				
					function upbrandtop1_change_copyright( $output ) {
    $output = 'Design by WordPress';
    return $output;
}
add_filter( 'upbrandtop1_copyright', 'upbrandtop1_change_copyright' ); // Sửa tên callback function

				
			

Hiện giờ, dòng Design by upbrandtop1 đã được thay thế thành chuỗi dữ liệu mới là Design by WordPress thông qua việc filter.

Filter này chỉ đơn giản là chúng ta khai báo tham số bất kỳ trong hàm callback, nó sẽ tự hiểu đây là hàm chứa dữ liệu, sau đó ở trong hàm chúng ta gán cho nó một giá trị mới và return về, cuối cùng là dùng add_filter() móc vào cái filter hook cần thay đổi.

Một số ví dụ Filter Hook trong WordPress

Cũng giống như Action Hook, WordPress có một số filter hook có sẵn mà bạn có thể sử dụng. Ở đây mình sẽ nói qua một vài filter hook điển hình để bạn thực hành.

the_content

Hook này sẽ giúp chúng ta lọc lại nội dung hiển thị ra bên ngoài. Chúng ta thử áp dụng nó vào việc in đậm một từ khoá nào đó bằng việc kết hợp hàm str_replace() trong PHP nhé.

				
					function upbrandtop1_content_filter( $content ) {
    $find = 'hello';
    $replacement = "<strong>hello</strong>";
    $content = str_replace( $find, $replacement, $content );
    return $content;
}
add_filter( 'the_content', 'upbrandtop1_content_filter' ); // Sửa tên callback function

				
			

wp_handle_upload_prefilter

Hook này sẽ được gọi ra để lọc lại tập tin upload lên Media Library của WordPress. Dựa vào hook này, bạn có thể 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;
}
?>
				
			

Lời kết

Bạn đọc nên dành thời gian để đọc và tìm hiểu mã nguồn trong WordPress, điều này có thể giúp bạn khám phá và sử dụng các filter có sẵn để phục vụ mục đích cụ thể.

Picture of Up Brand Top 1

Up Brand Top 1

Công ty TNHH Up Brand Top 1 là Agency cung cấp các dịch vụ marketing tổng thể bao gồm lên chiến lược và thực hiện chi tiết giúp Quý doanh nghiệp tối ưu chi phí đầu tư, nâng cao khả năng sinh lợi nhuận. KPIs được cam kết cụ thể theo từng giai đoạn và định hướng kinh doanh.

Để lại một bình luận

Bài viết liên quan

Dịch vụ tại Up Brand Top 1

Lên đầu trang