[2021] applyfilters trong wordpress. Cách dùng Filter Hook

Bài viết này mình sẽ giúp bạn hiều apply_filters trong wordpress là gì. Và cách dùng Filter Hook trong WordPress. Trong wordpress bên cạnh action hook thì filter hook cũng là một phần quan trọng trong wordpress. Với filter hook nó giúp bạn dễ dàng thay đổi dữ liệu xuất ra theo tham số mong muốn của bạn. Mà không cần phải thay đổi core code của plugin, theme hay core mã nguồn WordPress. Bởi vì trong theme, plugin, hay core mã nguồn WordPress dùng hàm apply_filters trong wordpress. Nó giúp tạo ra một điểm neo, bạn cần tìm đến hàm filter này để truyền tham số mong muốn theo ý mình vào. Để thay đổi kết quả hiển thị bằng hàm add_filter. Dưới đây mình sẽ giúp bạn hiểu rõ hơn về filter hook. Và cách sử dụng apply_filters trong wordpress. Bài viết này thuộc chuyên mục WordPress Development.

Filter Hook là gì

Filter hook giúp thay đổi dễ dàng 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 có thể thay đổi dữ 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 các tính năng bạn thêm mới vào cũng sẽ biến mất.

Việc có mặt của API Filter Hook trong WordPress là rất quan trọng. Nó giúp bạn 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.

Xem thêm  Hướng dẫn 3 bước tạo SubDomain trỏ về hosting và quản lý SubDomain - Easy Edu

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.

apply_filters trong wordpress. Cách dùng filter hook

Trong filter hook bạn cần chú ý 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 để thay đổi dữ 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):

<?php $text = ‘Hello Horld’; echo apply_filters( ‘chuanseoweb_hello_world’, $text ); ?>

Sử dụng add_filter để thay đổi đoạn chữ trên mà không thay đổi code trên. Bạn sử dụng ở file oecc.vn 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.

Xem thêm  VPS treo game là gì? 4 ưu điểm khi thuê VPS để treo game online

Bạn có thể tham khảo danh sách các 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 oecc.vn:

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 một số hàm liên quan đến filter sau. Nó sẽ giúp ích bạn nhiều trong quá trình phát triển theme hay plugin.

Xem thêm  Chatbot là gì? Cách tạo Chatbot Facebook hiệu quả (2022)

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ất cả các 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ó tồn tại 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 hy vọng sẽ giúp ích cho bạn. Nếu bạn có câu hỏi hay thắc mắc nào bạn vui lòng để lại bình luận bên dưới. Cám ơn bạn đã theo dõi bài viết.