溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WordPress中怎么創(chuàng)建和添加過濾器

發(fā)布時間:2021-07-14 15:49:40 來源:億速云 閱讀:163 作者:Leah 欄目:開發(fā)技術

本篇文章給大家分享的是有關WordPress中怎么創(chuàng)建和添加過濾器,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

apply_filters()(創(chuàng)建過濾器)
apply_filters() 函數用來創(chuàng)建一個過濾器,大多數被用在函數中,是 WordPress 插件機制中非常重要的一個函數,能讓其它的主題和插件對一個值進行修改過濾。

用法

apply_filters( $tag, $value, $var... );

參數

$tag

(字符串)(必須)過濾器的名字。

默認值:None

$value

(混合)(必須)要過濾的值,如果沒人過濾則直接返回這個值。

$var

(混合) (可選)傳給過濾函數額外的變量參數,輔助過濾函數對返回值進行操作,可以添加無限個。

返回值

(混合)過濾后的值,如果沒人過濾則直接返回 $value 的值。

例子

沒人過濾:

echo apply_filters( 'test', '可以被修改的值' );

打印結果:

可以被修改的值

有人過濾:

function test_func(){
  return '修改值';
}
add_filter( 'test', 'test_func' );
echo apply_filters( 'test', '可以被修改的值' );

打印結果:

修改值

接收參數:

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', '可以被修改的值' );

多個參數:

function test_func( $text, $var, $var2 ){
  return '修改值' . $var1 . $var2;
}
add_action( 'test', 'test_func', 10, 3 );
echo apply_filters( 'test', '可以被修改的值', '輔助值1', '輔助值2' );

其它

此函數位于:wp-includes/plugin.php

add_filter()(添加過濾器)
add_filter() 可以掛載一個函數到指定的過濾器上。

用法

add_filter( $tag, $function_to_add, $priority, $accepted_args );

參數

$tag

(字符串)(必須)所掛載的過濾器名字(和目標 apply_filters() 函數的 $tag 屬性一樣)。

默認值:None

$function_to_add

(回調)(必須)要掛載的回調函數,參考 PHP 回調函數類型文檔。

默認值:None

$priority

(整數)(可選)執(zhí)行順序,越小函數越先被執(zhí)行。

默認值:10

$accepted_args

(整數)(可選)回調函數接收的參數數量,設置多個可以接收更多 apply_filters() 函數傳進來的參數。

默認值:1

返回值

(布爾)總是 True

例子

function test_func( $text, $var1, $var2 ){
  return $text . $var1 . $var2;
}
add_action( 'test', 'test_func', 10, 3 );
echo apply_filters( 'test', '參數2', '參數3', '參數4' );

打印:

test參數2參數3

其它

該函數位于:wp-includes/plugin.php

以上就是WordPress中怎么創(chuàng)建和添加過濾器,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI