久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

WordPress教程 - 什么是Hook鉤子?

wordpress的插件就是通過各種各樣的Hook鉤子來實現的,wordpress提供了非常豐富的鉤子,你可以通過Hook鉤子給主題拓展出各種各樣有趣的功能來吸引您的主題用戶

如果你作為一名wordpress主題的開發者還不知道啥事wordpress的Hook鉤子,那可就太落伍了,其實wordpress的插件就是通過各種各樣的Hook鉤子來實現的,wordpress提供了非常豐富的鉤子,你可以通過Hook鉤子給主題拓展出各種各樣有趣的功能來吸引您的主題用戶。

不過,wordpress的Hook鉤子固然強大,但使用起來也是蠻復雜的,下面就來給大家介紹下吧。

WordPress教程 - 什么是Hook鉤子?
背景圖片

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

動作鉤子

wp_head()函數就有一個很典型的 Hook 動作,大部分主題的 head 標簽中都加入此函數。其中的鉤子為:wp_head。插件和WordPress核心都通過給 wp_head 添加鉤子函數來向網站的 head 標簽中加入內容。例:

function my_wp_head() {
    echo '<meta name="keywords" content="WordPress" />';
}
add_action('wp_head', 'my_wp_head');

提交代碼后,查看前臺的網頁源代碼,就可以在 head 標簽里看到剛剛添加的內容了。

這邊只是是演示一個最簡單的例子。利用這個鉤子,我們還可以做一個發生訪問 404 向管理員郵箱發送一封郵件的動作。

// 發生404 向管理員郵箱發送郵件
function HN_404_page_mail(){
  if( !is_404() ) return;//如果正常訪問頁面則退出該函數
  $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', 'HN_404_page_mail' );

掛鉤函數可以選擇接受從動作調用的參數,如果有任何要傳遞的話。在這個簡單的例子中,echo_comment_id 函數需要 $comment_id 參數,該參數將在 comment_id_not_found 過濾鉤子運行時通過 do_action() 傳遞。

function echo_comment_id( $comment_id ) // 注意$comment_id就是動作調用的參數傳遞過來的
{
   echo 'Comment ID ' . $comment_id . ' could not be found';
}
add_action( 'comment_id_not_found', 'echo_comment_id', 10, 1 );

過濾器鉤子

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

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

//文章內容圖片自動加ALT屬性為文章標題
function kratos_auto_post_link($content)//$content 變量就是文章內容,因為其它過濾器也要過濾,所以這個內容可能是經過其它函數過濾的
 {
  global $post;
  $content = preg_replace('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\[^>]*?\/?\s*>/i', "<img layer-src=\"$2\" src=\"$2\" alt=\"《".$post->post_title."》\" />", $content);
  return $content;//必須要把過濾后的內容返回回去,否則值就丟了
  }
add_filter ('the_content', 'kratos_auto_post_link',0);

其他

要找出一個動作的參數的ID和名稱,只需搜索匹配 do_action() 調用的代碼庫。舉例來說,如果你掛載到’save_post’,你會在 post.php 找到:

<?php do_action( 'save_post', $post_ID, $post ); ?>

你的 add_action 調用將是這樣:

<?php add_action( 'save_post', 'my_save_post', 10, 2 ); ?>

而且你的函數將是這樣:

function my_save_post( $post_ID, $post )
{
   // do stuff here
}

鉤子原理

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

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

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

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

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

下面的代碼會打印出鉤子列表數組。

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

以上就是這次wordpress開發的全部內容了,光說不練假把式,來看看這個案例是咋通過wordpress的Hook鉤子來實現一個實用的功能的。

wordpress美化 - 美觀的文章頁底部版權聲明

給TA贊賞
共{{data.count}}人
人已贊賞
??
Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      欧美高清在线视频| 一本大道综合伊人精品热热| 久久精品国产成人一区二区三区 | 欧美一区二区三区视频在线| 亚洲色图欧洲色图| 丁香六月综合激情| 亚洲三级在线看| 在线观看不卡一区| 日精品一区二区三区| 欧美日韩另类一区| 精品91自产拍在线观看一区| 成人精品免费网站| 亚洲va欧美va天堂v国产综合| 91麻豆精品国产91久久久久 | 成人美女在线观看| 亚洲成av人片一区二区| 亚洲国产精品传媒在线观看| 欧美午夜精品久久久久久孕妇| 亚洲国产美女搞黄色| 久久色中文字幕| 成人综合在线观看| 精品影视av免费| 亚洲国产婷婷综合在线精品| 精品免费日韩av| 97aⅴ精品视频一二三区| 日韩国产欧美在线播放| 国产精品视频九色porn| 日韩三级在线观看| 色妞www精品视频| 奇米影视一区二区三区小说| 中文字幕中文字幕一区| 日韩欧美一级二级三级| 99免费精品在线| 国产在线视频一区二区三区| 依依成人综合视频| 日本一区二区久久| 精品美女一区二区| 宅男噜噜噜66一区二区66| 99久久国产免费看| 成人晚上爱看视频| 麻豆一区二区三区| 亚洲一区在线观看网站| 一区二区三区资源| 国产日韩高清在线| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美性受极品xxxx喷水| 色综合久久中文字幕| kk眼镜猥琐国模调教系列一区二区| 久久精品99国产精品| 美国欧美日韩国产在线播放| 亚洲国产视频直播| 奇米色777欧美一区二区| 日本成人在线看| 精品一区二区三区在线播放 | 国产在线日韩欧美| 国产精品伊人色| 成人免费看的视频| 一本到高清视频免费精品| 91网站视频在线观看| 色偷偷久久一区二区三区| 色噜噜久久综合| 欧美色男人天堂| 91精品国产aⅴ一区二区| 精品久久久久久久久久久院品网| 2024国产精品| 亚洲男人的天堂在线aⅴ视频| 一区二区三区精密机械公司| 亚洲国产精品麻豆| 久久不见久久见免费视频1| 国内精品不卡在线| 成人国产精品视频| 在线精品视频小说1| 欧美丝袜丝nylons| 欧美日本在线一区| 日韩免费一区二区三区在线播放| 精品国产污网站| 亚洲激情av在线| 捆绑调教一区二区三区| av在线播放成人| 欧美日韩一区小说| 777午夜精品视频在线播放| 欧美精品一区二区三区蜜臀| 国产精品国产三级国产普通话蜜臀 | 一区二区三区色| 五月婷婷综合激情| 高清不卡一二三区| 欧美日本韩国一区| 中文字幕在线一区免费| 亚洲18女电影在线观看| 国产一区二区三区电影在线观看| aaa国产一区| 日韩欧美自拍偷拍| 国产精品福利av| 奇米影视一区二区三区小说| 激情五月婷婷综合| 欧美日韩免费电影| 亚洲欧美激情视频在线观看一区二区三区| 日韩国产欧美在线播放| 色欧美88888久久久久久影院| 欧美一区二区三区的| 136国产福利精品导航| 久久99精品国产91久久来源| 东方aⅴ免费观看久久av| 9191成人精品久久| 精品久久久久久久久久久久久久久久久 | 国产精品嫩草久久久久| 亚洲国产精品嫩草影院| 国产v日产∨综合v精品视频| 欧美性一区二区| 国产精品免费丝袜| 麻豆91免费观看| 欧美日韩五月天| 亚洲欧美日韩国产成人精品影院| 另类欧美日韩国产在线| 色哟哟在线观看一区二区三区| 欧美激情一区二区三区不卡| 国产精品一级片在线观看| 日韩一区二区电影网| 日韩avvvv在线播放| 欧美日韩电影一区| 丝袜亚洲另类欧美| 91精品国产色综合久久ai换脸| 亚洲.国产.中文慕字在线| 欧美日韩中文精品| 亚洲二区在线观看| 精品视频在线免费| 亚洲aaa精品| 5566中文字幕一区二区电影| 婷婷国产v国产偷v亚洲高清| 欧美精品黑人性xxxx| 亚洲国产精品久久久久婷婷884| 91啪在线观看| 亚洲成在人线在线播放| 欧美手机在线视频| 日韩精品一二三区| 日韩一二在线观看| 美腿丝袜亚洲色图| 欧美电视剧免费全集观看| 精品写真视频在线观看| 久久久久久久一区| av中文字幕亚洲| 中文字幕在线不卡视频| 成人国产免费视频| 亚洲一区二区精品视频| 欧美日韩精品电影| 日韩国产欧美在线观看| 久久综合色综合88| 国产一区二区三区四| 亚洲男人天堂av| 日韩久久久精品| 福利一区二区在线观看| 亚洲成人免费视频| 国产欧美综合在线观看第十页| 色婷婷亚洲婷婷| 精品在线观看视频| 中文字幕av一区二区三区高| 91小视频在线| 天天综合天天综合色| 久久久精品国产99久久精品芒果| 9人人澡人人爽人人精品| 洋洋av久久久久久久一区| 欧美日韩精品欧美日韩精品 | 免费精品视频在线| 国产精品女上位| 欧美天天综合网| 国产乱对白刺激视频不卡| 天堂午夜影视日韩欧美一区二区| 精品国产123| 欧美日韩一区二区三区不卡| 久久精品999| 国产精品久久看| 久久综合色8888| 91精品国产色综合久久| 在线看国产一区| 99视频热这里只有精品免费| 九九国产精品视频| 日本欧美一区二区三区乱码 | 亚洲一区二区三区小说| 国产免费观看久久| 日韩免费高清av| 99视频超级精品| 不卡av在线网| 韩国成人精品a∨在线观看| 午夜精品一区二区三区电影天堂| 国产精品成人一区二区艾草| 国产欧美综合在线观看第十页| 日韩欧美一区二区不卡| 欧美日韩高清一区二区| 欧美视频完全免费看| 一本大道久久a久久精二百| av亚洲精华国产精华精华| www.欧美.com| 成av人片一区二区| 国产成人精品亚洲777人妖 | 国产成人日日夜夜| 国产精品一色哟哟哟| 免费av网站大全久久| 日本亚洲最大的色成网站www| 中文字幕一区二区不卡| 中文成人综合网|