add_filter() 是 WordPress 提供的一個過濾器鉤子函數,我們可以通過此函數在程序運行時修改各種類型的內部數據。
這個鉤子的使用方法很簡單,我們僅需用它構造一個回調函數即可,如下所示:
function example_callback( $example ) {
// 對 $example 的一系列處理過程
return $example;
}
add_filter( 'example_filter', 'example_callback' );
通過將參數?$example 傳遞給回調函數,在經過一系列處理后返回該?$example 的新值。add_filter() 一共有四個參數,其調用方法如下所示:
add_filter( string $tag, callable $function_to_add, int $priority = 10,int $accepted_args = 1 )
$tag:必填(字符串)。掛載回調函數的過濾器名稱。
$function_to_add:必填(可調用的函數)。過濾器應用時調用的回調函數。
$priority:可選(整型)。用于指定與特定操作關聯的函數的執行順序,默認為10。
$accepted_args:可選(整型)。add_filter() 過濾器可接受的參數個數,默認為1。
由最后一個參數我們可以了解到?add_filter() 鉤子的回調函數 $function_to_add 可以接受零到多個參數,這取決于 add_filter() 最后一個參數的設置。
最后,我們看下?add_filter() 函數的具體定義,其位于?wp-includes/plugin.php?文件中,具體代碼如下:
function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
global $wp_filter;
if ( ! isset( $wp_filter[ $tag ] ) ) {
$wp_filter[ $tag ] = new WP_Hook();
}
$wp_filter[ $tag ]->add_filter( $tag, $function_to_add, $priority, $accepted_args );
return true;
}