NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
09/03/2023
Lượt xem

Filter Hook là gì? Hướng dẫn dùng apply_filters trong WordPress

09/03/2023
6 phút đọc
Lượt xem

Đánh giá

5/5 - (172 bình chọn)

Bên cạnh Action Hook thì Filter Hook cũng là một hook thường được sử dụng trong WordPress. Filter Hook sẽ hỗ trợ người dùng thay đổi dữ liệu xuất ra một cách dễ dàng theo tham số mong muốn mà không phải đổi code của plugin, theme hay core mã nguồn. Để hiểu rõ hơn về Filter Hook và một số cách dùng apply_filters trong WordPress, hãy cùng Vietnix tham khảo ngay trong bài viết dưới đây.

Filter Hook là gì?

Filter Hook là một điểm neo được được khai báo trong mã nguồn của WordPress, plugin hay theme mà tại đó, bạn có thể dễ dàng thay đổi lại kịch bản 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.

Filter Hook là gì? Cách dùng apply_filters trong WordPress
Filter Hook là gì? Cách dùng apply_filters trong WordPress

Cách dùng Filter Hook và hàm apply_filters trong WordPress

Khi sử dụng Filter Hook, có 2 hàm quan trọng mà bạn cần chú ý tới là hàm apply_filters()add_filter(). Trong đó, chức năng chính của 2 hàm trong WordPress như sau:

  • apply_filters trong WordPress: Là hàm hỗ trợ tạo ra các điểm neo.
  • add_filter: Hàm này sẽ giúp thay đổi dữ liệu xuất ra tại vị trí mà bạn đã tạo điểm neo.

Dưới đây, Vietnix sẽ hướng dẫn cụ thể các cách sử dụng hàm apply_filters trong WordPres để tạo điểm neo trong WordPress và add_filter để thay đổi dữ liệu xuất ra tại các điểm neo đó.

Thêm đoạn mã sau để sử dụng hàm apply_filters tại các nơi bạn muốn tạo điểm neo:

<?php    $text = 'Vietnix';    echo apply_filters( 'Vietnix_xin_chao', $text );  ?>

Sử dụng add_filter để thay đổi chữ ở nội dung phía trên mà không nhất định phải sửa đoạn code trên. Bạn thêm đoạn mã này ở file function.php trong theme:

add_filter('Vietnix_xin_chao', 'csw_change_text');  function csw_change_text( $text ) {    $text = 'Change text';    return $text;  }

Tên “Vietnix_xin_chao” chính là Filter Hook do bạn tạo ra như một điểm neo. Bạn cần ghi nhớ tên này để sử dụng hàm add_filter trong trường hợp bạn muốn thay đổi nội dung xuất ra code. Đối với hàm csw_change_text bạn có thể thay đổi theo cách dễ hiểu nhất là được.

Một ví dụ thay đổi tiêu đề theo id bài viết với hàm filter the_title để giúp bạn dễ hiểu hơn. Bạn chỉ cần thêm đoạn code dưới đây vào file function.php:

add_filter('the_title', 'csw_change_title', 9, 2);  function csw_change_title($title, $id) {    $arr_id_chage_title = [10,12,15,18];    if( in_array($id, $arr_id_chage_title) ) {      $title = $title . ' - Vietnix';    }    return $title;  }

Trong đó:

  • the_title: Là tên Filter Hook và là điểm neo do bạn muốn tạo trong WordPress.
  • csw_change_title: Hàm mà người dùng có thể tùy ý chọn một cách dễ hiểu nhất.
  • 9: Độ ưu tiên của hàm sử dụng, để biết được thứ tự chạy trước sau của các hàm khi sử dụng nhiều hàm add_filter tại một điểm neo.
  • 2: Số lượng tham số truyền vào (trong phần code trên sử dụng 2 tham số là $title$id.
  • 10, 12, 15, 18: Là id của những bài viết muốn thêm chữ “Vietnix” vào tiêu đề. Bạn cũng có thể thay đổi tùy vào mục đích sử dụng.

Một số hàm Filter khác cần nắm

2 hàm thường được sử dụng nhiều nhất trong Filter Hook là add_filterapply_filters trong WordPress đã được Vietnix giới thiệu bên trên. Bạn cũng có thể tham khảo thêm một số hàm liên quan đến Filter Hook khác để hỗ trợ trong quá trình phát triển theme hay plugin như sau:

Hàm remove_filter

Hàm remove_filter được sử dụng để loại bỏ một hàm đang móc vào Filter Hook. Code đầy đủ của hàm này như sau:

remove_filter( $hook_name, $callback, $priority )

Trong đó:

  • $hook_name: Tên hook.
  • $callback: Tên hàm muốn loại bỏ khỏi hook trên.
  • $priority: Thứ tự xóa ưu tiên (bạn có thể thay đổi hoặc mặc định điền số 10).
Hàm remove_filter
Hàm remove_filter

Hàm remove_all_filters

Nếu bạn muốn xóa bỏ tất cả các hàm đang móc vào 1 Filter Hook bạn có thể dùng hàm remove_all_filters với code như sau.

remove_all_filters( $hook_name, $priority ).

Trong đó:

  • $hook_name: Tên hook.
  • $priority: Số thứ tự xóa ưu tiên, giá trị mặc định là False.

Hàm has_filter

Nếu bạn muốn kiểm tra xem hook có tồn tại không, hãy thêm đoạn mã code này:

has_filter( $hook_name, $callback )

Trong đó:

  • $hook_name: Tên hook.
  • $callback: Tên của hàm mà bạn muốn kiểm tra có đang móc vào hook phía trên hay không. Bạn có thể để trống và mặc định hiển thị giá trị là False.

Lời kết

Trên đây là tất cả những thông tin mà Vietnix muốn chia sẻ để giúp giải đáp các thắc mắc về Filter Hook là gì cũng như hướng dẫn cách dùng apply_filters trong WordPress. Hy vọng qua bài viết, bạn sẽ tích lũy thêm được nhiều kiến thức bổ ích và biết được cách sử dụng các filter hỗ trợ quá trình code nhanh chóng, hiệu quả nhé.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Lê Nam

WordPress Expert
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG