麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > CMS建站 > 正文

解析WordPress中函數鉤子hook的作用及基本用法

2020-03-22 19:28:44
字體:
來源:轉載
供稿:網友
WordPress 的插件機制實際上只的就是這個 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 標簽里看到我們添加的內容了。
上邊是一個簡單的例子,只是打印了一句話。利用這個鉤子,我們還可以做一個遇到 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 html' target='_blank'>全局變量添加了一個數組元素,還要說的就是動作和過濾器是公用的一個全局變量,也就是說,過濾器和動作是不能重名的。當調用 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 上邊的代碼會打印出鉤子列表。
PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 双性精h调教灌尿打屁股的文案 | 欧美黄色免费视频 | 国产午夜精品一区二区三区四区 | 欧洲精品久久久久69精品 | 欧美成人精品不卡视频在线观看 | 国产精品久久久久久一区二区三区 | 国产91对白叫床清晰播放 | 欧美视频国产 | 日韩一级毛毛片 | av色先锋 | 羞羞的视频免费观看 | 亚洲91精品 | 亚洲5区| 中文字幕涩涩久久乱小说 | 久久精精品 | 日韩黄网站 | 亚洲看片网| 羞羞答答影院 | 日韩视频在线一区二区三区 | 香蕉成人在线视频 | av电影在线观看免费 | 综合网日日天干夜夜久久 | 91青青| 欧美日韩在线播放 | 欧美成年视频 | 成人男女免费视频 | 特级黄色小说 | 欧美性videofree精品 | 又黄又爽免费无遮挡在线观看 | 男男羞羞视频网站国产 | 99国产精品国产免费观看 | 色婷婷一区二区三区 | 日韩高清影视 | 91福利影视| 午夜视频免费播放 | 国产午夜亚洲精品 | 国产精品免费看 | 欧美一级毛片免费观看 | 一级在线| 日本xxxx色视频在线观看免费, | 精品国产一区二区三区久久久蜜月 |