Hầu hết những điều sau đây có thể được tìm thấy trong Codex :
apply_filters
Các hàm gọi lại được gắn vào móc lọc $tag
được gọi bằng cách gọi hàm này. Hàm này có thể được sử dụng để tạo móc lọc mới bằng cách gọi hàm này với tên của móc mới được chỉ định bằng tham số thẻ $.
$value = apply_filters( $tag, $value, $var_1, $var_2, ... );
Về bản chất:
Bạn sử dụng apply_filters
để lọc một $value
giá trị nhất định - liên quan đến chính giá trị cũng như các biến được cung cấp tùy chọn $var_1
thông qua $var_n
.
add_filter
Móc một chức năng cho một hành động lọc cụ thể.
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Về bản chất:
Bạn sử dụng add_filter
để móc một chức năng tùy chỉnh vào hành động bộ lọc đã cho ( $tag
) mà trước đây bạn có thể đã tạo apply_filters
(hoặc đó là hành động bộ lọc tích hợp hoặc xuất phát từ plugin / chủ đề của bạn).
Vì vậy, đây là một ví dụ
hư cấu :
function print_initials( $name ) {
if ( ! is_string( $name ) ) {
return;
}
$fragments = explode( ' ', $name );
/**
* Filter wether to print initials in reverse order.
*
* @param bool $reverse Print initials in reverse order?
*/
if ( apply_filters( 'reverse_initials', FALSE ) ) {
$fragments = array_reverse( $fragments );
}
foreach ( $fragments as $f ) {
echo substr( $f, 0, 1 );
}
}
print_initials( 'Some Guy' ); // outputs: SG
add_filter( 'reverse_initials', '__return_true' );
print_initials( 'Some Guy' ); // outputs: GS
Bây giờ, nếu chúng ta chỉ gọi chức năng của mình là như vậy, thì chữ cái đầu được in từ trái sang phải bởi vì đây là những gì chúng ta định nghĩa là hành vi mặc định.
Lần thứ hai, chúng tôi nhận được các chữ cái đầu theo thứ tự ngược lại bởi vì hàm bộ lọc __return_true
, được nối với hành động bộ lọc của chúng tôi, luôn trả về TRUE
và do đó làm cho các chữ cái đầu tiên được xuất từ phải sang trái.