91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

hook函數在WordPress中有什么用

發布時間:2021-01-04 16:39:17 來源:億速云 閱讀:187 作者:Leah 欄目:開發技術

這篇文章給大家介紹hook函數在WordPress中有什么用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

鉤子分類

鉤子分為兩種,一種叫做動作(action),還有一種叫做過濾器(filter)。這兩種鉤子實現原理基本一樣,后邊會講到,使用上的區別在于過濾器有返回值,而動作沒有。

動作的理念是讓你在一種情況或者一個特別的位置執行一些函數,比如發送一封郵件等;過濾器則是讓你修改 WordPress 核心需要用到的一個值,然后 WordPress 再用這些值做一些事情,比如函數的返回值等。

動作鉤子

wp_head 是一個很常用的動作鉤子,在開發主題過程中,開發者都會在 head 標簽里加上 wp_head() 函數,事實上,正是這個函數調用了 wp_head 鉤子。

如果插件開發者想要在 head 標簽里添加一句話,就可以使用 wp_head 鉤子,下邊是個簡單的例子。

//在 head 標簽添加一些內容
function Bing_add_head_tag(){
  echo '添加內容';
}
add_action( 'wp_head', 'Bing_add_head_tag' );

添加代碼后,查看前臺的網頁源代碼,就能在 head 標簽里看到我們添加的內容了。

hook函數在WordPress中有什么用

上邊是一個簡單的例子,只是打印了一句話。利用這個鉤子,我們還可以做一個遇到 404 頁面給管理員發送一封郵件的插件,下邊簡單的寫了一個。

//遇到 404 頁面給管理員發送郵件
function Bing_404_page_mail(){
  if( !is_404() ) return;//如果不是 404 頁面就退出函數
  $to = get_option( 'admin_email' );//獲取管理員地址
  $subject = '遇到 404 頁面啦!';//郵件標題
  $message = '404 頁面的地址:http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];//郵件內容
  wp_mail( $to, $subject, $message );//發送郵件
}
add_action( 'wp_head', 'Bing_404_page_mail' );

過濾器鉤子

根據我的親身經歷,可能過濾器鉤子會難理解些,尤其對不熟悉 PHP 的人來說。

過濾器鉤子可以讓你改一些東西的值,過濾器回調函數會接受一個參數,這就是當前的值。還記得那個用來調用文章內容的 the_content() 函數吧,這個函數就提供了一個 the_content 過濾器。

給 the_content 鉤子添加一個函數,這個函數需要接收一個參數,這個參數就是當前的值。

//文章內容全部鏈接新窗口打開
function Bing_autoblank( $content ){//$content 變量就是文章內容,因為其它過濾器也要過濾,所以這個內容可能是經過其它函數過濾的
  $content = str_replace( '<a', '<a target="_blank"', $content );//添加 target="_blank"
  return $content;//必須要把過濾后的內容返回回去,否則值就丟了
}
add_filter( 'the_content', 'Bing_autoblank' );

鉤子原理

事實上,在調用 add_action() 和 add_filter() 的時候,只是向 $wp_filter 全局變量添加了一個數組元素,還要說的就是動作和過濾器是公用的一個全局變量,也就是說,過濾器和動作是不能重名的。

當調用 do_action() 的時候,會查找 $wp_filter 全局變量中都有哪些添加到此動作的函數,循環執行即可。

apply_filters() 比 do_action() 多了一個步奏,就是每次調用函數時還要接收這個函數的返回值,最后把經過多次過濾的值返回出去,供使用。

獲取當前鉤子列表
WordPress 的動作和過濾器是插件機制的核心部分,允許你在特定的地方主動添加自己需要執行的動作,一般使用 add_action() 和 add_filter() 函數掛載函數。

這些鉤子被儲存在 $wp_filter 全局變量里,所以,要獲取鉤子列表,可以直接獲取 $wp_filter 全局變量。

<pre><?php var_dump( $GLOBALS['wp_filter'] ); ?></pre>

上邊的代碼會打印出鉤子列表。

hook函數在WordPress中有什么用

關于hook函數在WordPress中有什么用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

宁乡县| 铅山县| 湘潭县| 黄石市| 米脂县| 象州县| 平舆县| 阳泉市| 芒康县| 德格县| 中阳县| 邢台县| 浙江省| 泗洪县| 汉沽区| 德格县| 沅陵县| 石景山区| 乌鲁木齐市| 石嘴山市| 阿坝县| 宣化县| 营山县| 娄烦县| 阿拉善盟| 海城市| 通州区| 海口市| 巴里| 中西区| 夏河县| 阳江市| 张家口市| 浑源县| 大足县| 永吉县| 察哈| 松原市| 贵溪市| 芦山县| 白河县|