Bộ lọc là gì?
Bộ lọc là các chức năng mà WordPress chuyển dữ liệu qua, tại một số điểm nhất định khi thực hiện, ngay trước khi thực hiện một số hành động với dữ liệu (chẳng hạn như thêm nó vào cơ sở dữ liệu hoặc gửi nó đến màn hình trình duyệt). Các bộ lọc nằm giữa cơ sở dữ liệu và trình duyệt (khi WordPress đang tạo trang) và giữa trình duyệt và cơ sở dữ liệu (khi WordPress đang thêm bài đăng và nhận xét mới vào cơ sở dữ liệu); hầu hết đầu vào và đầu ra trong WordPress đều đi qua ít nhất một bộ lọc. WordPress thực hiện một số bộ lọc theo mặc định và plugin của bạn có thể thêm bộ lọc riêng.
Nối vào bộ lọc
Để cho phép người dùng thay đổi một số dữ liệu cụ thể (một giá trị, đầu ra của hàm, v.v.) các móc lọc được cung cấp thông qua các apply_filters
hàm.
Các móc lọc này bao gồm tên (hoặc thẻ ) của bộ lọc và ít nhất là tên hàm sẽ được sử dụng để lọc (nghĩa là thay đổi theo một cách nào đó) dữ liệu.
Để thay đổi tiêu đề của bài đăng, bạn có thể sử dụng the_title
móc lọc, được xác định như sau:
apply_filters( 'the_title', $title, $id );
Điều này có nghĩa là, bộ lọc có thẻ / tên the_title
, tham số đầu tiên $title
là dữ liệu sẽ được thay đổi (nghĩa là tiêu đề bài đăng) và tham số thứ hai $id
là thông tin bổ sung (trong trường hợp này là ID bài đăng).
Ví dụ, để hiển thị tiêu đề của mỗi bài đăng trong UPPERCASE, bạn có thể sử dụng dòng sau:
add_filter('the_title', 'strtoupper');
Nếu chúng ta nhìn vào add_filter
hàm, chúng ta thấy nó được định nghĩa như sau:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Chúng tôi chỉ chỉ định tham số thứ nhất và thứ hai (bắt buộc), trong khi tham số thứ ba và thứ tư được đặt thành giá trị mặc định tương ứng (nghĩa là 10
và 1
).
Một bộ lọc phức tạp hơn
Nếu bạn chỉ muốn lọc một bài đăng nhất định , bạn có thể sử dụng thông tin bổ sung (trong trường hợp bộ lọc này: ID). Để làm như vậy, bạn phải chỉ định số lượng tham số (là 2 trong trường hợp này) và để thực hiện lại, bạn phải chỉ định tham số ưu tiên (đi trước số lượng đối số).
Giả sử chúng ta chỉ muốn ảnh hưởng đến tiêu đề của bài đăng với ID 42, thì nó trông như thế này:
add_filter('the_title', 'my_strtoupper', 10, 2);
function my_strtoupper($title, $id) {
if (42 === $id) return strtoupper($title);
return $title;
} // function my_strtoupper
Trong trường hợp này, chúng tôi phải chỉ định tất cả bốn tham số có sẵn.
Tôi có thông số gì?
Để xác định (số lượng) tham số khả dụng của một bộ lọc nhất định, bạn phải tìm kiếm nơi nó được xác định (trong trường hợp này: tại đây ).
Tài liệu tham khảo :