這篇文章主要介紹了WordPress中創(chuàng)建和添加過濾器的相關(guān)PHP函數(shù),分別是apply_filters()函數(shù)和add_filter()函數(shù)的使用,需要的朋友可以參考下
apply_filters()(創(chuàng)建過濾器)
apply_filters() 函數(shù)用來創(chuàng)建一個(gè)過濾器,大多數(shù)被用在函數(shù)中,是 WordPress 插件機(jī)制中非常重要的一個(gè)函數(shù),能讓其它的主題和插件對(duì)一個(gè)值進(jìn)行修改過濾。
用法
apply_filters( $tag, $value, $var... );
參數(shù)
$tag
(字符串)(必須)過濾器的名字。
默認(rèn)值:None
$value
(混合)(必須)要過濾的值,如果沒人過濾則直接返回這個(gè)值。
$var
(混合) (可選)傳給過濾函數(shù)額外的變量參數(shù),輔助過濾函數(shù)對(duì)返回值進(jìn)行操作,可以添加無(wú)限個(gè)。
返回值
(混合)過濾后的值,如果沒人過濾則直接返回 $value 的值。
例子
沒人過濾:
echo apply_filters( 'test', '可以被修改的值' );
打印結(jié)果:
可以被修改的值
有人過濾:
- function test_func(){
- return '修改值';
- }
- add_filter( 'test', 'test_func' );
- echo apply_filters( 'test', '可以被修改的值' );
打印結(jié)果:
修改值
接收參數(shù):
- function test_func(){
- return '修改值';
- }
- add_filter( 'test', 'test_func' );
- function test_func2( $text ){
- return $text . '2';
- }
- add_filter( 'test', 'test_func2' );
- echo apply_filters( 'test', '可以被修改的值' );
多個(gè)參數(shù):
- function test_func( $text, $var, $var2 ){
- return '修改值' . $var1 . $var2;
- }
- add_action( 'test', 'test_func', 10, 3 );
- echo apply_filters( 'test', '可以被修改的值', '輔助值1', '輔助值2' );
其它
此函數(shù)位于:wp-includes/plugin.php
add_filter()(添加過濾器)
add_filter() 可以掛載一個(gè)函數(shù)到指定的過濾器上。
用法
add_filter( $tag, $function_to_add, $priority, $accepted_args );
參數(shù)
$tag
(字符串)(必須)所掛載的過濾器名字(和目標(biāo) apply_filters() 函數(shù)的 $tag 屬性一樣)。
默認(rèn)值:None
$function_to_add
(回調(diào))(必須)要掛載的回調(diào)函數(shù),參考 PHP 回調(diào)函數(shù)類型文檔。
默認(rèn)值:None
$priority
(整數(shù))(可選)執(zhí)行順序,越小函數(shù)越先被執(zhí)行。
默認(rèn)值:10
$accepted_args
(整數(shù))(可選)回調(diào)函數(shù)接收的參數(shù)數(shù)量,設(shè)置多個(gè)可以接收更多 apply_filters() 函數(shù)傳進(jìn)來的參數(shù)。
默認(rèn)值:1
返回值
(布爾)總是 True
例子
- function test_func( $text, $var1, $var2 ){
- return $text . $var1 . $var2;
- }
- add_action( 'test', 'test_func', 10, 3 );
- echo apply_filters( 'test', '參數(shù)2', '參數(shù)3', '參數(shù)4' );
打印:
test參數(shù)2參數(shù)3
其它
該函數(shù)位于:wp-includes/plugin.php
|
新聞熱點(diǎn)
疑難解答
圖片精選