Wordpress/類別與函式:修訂版本之間的差異
第 9 行: | 第 9 行: | ||
參數說明: | 參數說明: | ||
− | (一)動作名: WordPress所提供的動作名,用於標識在哪個動作發生時,執行響應函數。相應函數名:當動作 hook_name 發生時需要執行的響應函數的名字。可以是 PHP 標準的函數,或者是 WordPress | + | (一)動作名: WordPress所提供的動作名,用於標識在哪個動作發生時,執行響應函數。相應函數名:當動作 hook_name 發生時需要執行的響應函數的名字。可以是 PHP 標準的函數,或者是 WordPress 內的函數,或者是插件內自定義的函數。 |
動作 (Actions) 是由 WordPress 內部的某些事件所觸發的,比如說發表一篇文章、更換主題或者訪問後台的某個管理界面,這些都是一件事件的例子。而插件則可以指定某些 PHP 函數來響應這些事件所觸發的動作。例如: | 動作 (Actions) 是由 WordPress 內部的某些事件所觸發的,比如說發表一篇文章、更換主題或者訪問後台的某個管理界面,這些都是一件事件的例子。而插件則可以指定某些 PHP 函數來響應這些事件所觸發的動作。例如: | ||
第 28 行: | 第 28 行: | ||
可以把函數掛載到系統中:add_action ( 'publish_post', 'email_friends' ); | 可以把函數掛載到系統中:add_action ( 'publish_post', 'email_friends' ); | ||
+ | |||
+ | (三)優先級:這是一個可選的參數,預設值為10。由於可以把多個函數註冊到同一個動作,所以這個參於是用於指定註冊到這個動作中的這個函數執行的優先級,數字越小優先 級越高,執行得也越早,反之亦然。如果若干個函數以相同的優先級註冊到同一個動作,那麼執行順序則是由它們註冊的先後順序所決定。 | ||
+ | |||
+ | (四)參數數目:這是一個可選的參數,預設值是1。由於某些動作可能會把多個參數傳給響應函數,所以這個有時候需要指定響應函數能接受多少個參數。這個參數是在 1.5.1 版加進去的。這個函數類似於Qt中的信號槽機制。 |
2016年8月18日 (四) 07:08的修訂版本
類別
函式
add_action()
描述:在一個action上掛載(掛鉤機制)一個函數。
函數原型:add_action ( '動作名', '響應函數名', [優先級], [參數數目] );
參數說明:
(一)動作名: WordPress所提供的動作名,用於標識在哪個動作發生時,執行響應函數。相應函數名:當動作 hook_name 發生時需要執行的響應函數的名字。可以是 PHP 標準的函數,或者是 WordPress 內的函數,或者是插件內自定義的函數。
動作 (Actions) 是由 WordPress 內部的某些事件所觸發的,比如說發表一篇文章、更換主題或者訪問後台的某個管理界面,這些都是一件事件的例子。而插件則可以指定某些 PHP 函數來響應這些事件所觸發的動作。例如:
- 修改數據庫數據
- 發送電子郵件
- 修改即將顯示出來的內容
- 使用動作來掛載插件的基本步驟如下:
- 在插件代碼中定義當某個事件發生時,需要執行的 PHP 函數
用add_action() 把這個函數註冊到動作執行掛勾上,把插件源碼放到 WordPress 指定的地方,然後啟用它
(二)定義動作響應函數:要在插件中執行動作,就要先在插件文件(必須放到wp-content/plugins下)中定義一個響應動作的 PHP 函數。比如下面的例子,實現的功能是在新文章發佈時,通過電子郵件通知好友。
$friends = 'bob@example.org,susie@example.org'; mail($friends, "sally's blog updated", 'I just put something on my blog: http://blog.example.com'); return $post_ID;
可以把函數掛載到系統中:add_action ( 'publish_post', 'email_friends' );
(三)優先級:這是一個可選的參數,預設值為10。由於可以把多個函數註冊到同一個動作,所以這個參於是用於指定註冊到這個動作中的這個函數執行的優先級,數字越小優先 級越高,執行得也越早,反之亦然。如果若干個函數以相同的優先級註冊到同一個動作,那麼執行順序則是由它們註冊的先後順序所決定。
(四)參數數目:這是一個可選的參數,預設值是1。由於某些動作可能會把多個參數傳給響應函數,所以這個有時候需要指定響應函數能接受多少個參數。這個參數是在 1.5.1 版加進去的。這個函數類似於Qt中的信號槽機制。