日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

介绍50个 WordPress 动作挂钩

發布時間:2025/3/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 介绍50个 WordPress 动作挂钩 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WordPress 之所以能成為世界上最受歡迎的網頁內容管理系統,原因就在于它的高度靈活性和可塑性,而這種靈活性和可塑性正是由“掛鉤”(Hooks)簡潔宜用的結構所決定的。可以說,沒有過濾掛鉤(Filter Hooks)和動作掛鉤(Action Hooks), WordPress 就不會具有這樣高的可拓展性,我們也不可能會有如此多的 WordPress 插件和主題可供選擇。

在本系列教程中,我將會向你詳細介紹 WordPress 中的動作掛鉤。在整個教程中,我們將會涵蓋有關動作掛鉤幾乎所有方面的內容。

  • 在第一部分,也就是在本文中,我們將會逐步了解到 WordPress 動作掛鉤:什么是 WordPress 動作掛鉤,以及怎樣使用 WordPress 的7大核心動作掛鉤。
  • 在接下來的五個部分,我們將會接觸到大量有關 WordPress 動作掛鉤的實例。而在每一個部分,我們都會了解到10個掛鉤的優點和它們的使用條件,并通過一些實例來進一步掌握它們。
  • 在本系列課程的最后,我們將會進行一次課程回顧與總結,包括所舉的50個例子。

這個學習過程將會非常漫長,所以,請做好準備。

什么是 WordPress 動作掛鉤

在?Codex?( WordPress 法典)中,給出的定義如下:

動作掛鉤由?WordPress?中的特定事件激活,例如:發布一篇文章、更改主題,或者是顯示管理控制界面(?administration screen)。動作掛鉤是在插件(或主題)中定義的自定義PHP函數,即被設定為回應某些特定事件。

所以,從本質上來說,動作掛鉤由某個 WordPress 事件激活,可以在事件之前或之后運行。動作掛鉤只是WordPress的兩種掛鉤之一,另一個則是我們之前講到的過濾掛鉤(Filters)——如果想了解更多有關 WordPress 過濾掛鉤的內容,請參閱《50個 WordPress 過濾掛鉤》一文。

在WordPress中使用動作掛鉤

定義動作掛鉤只是最簡單的一步,幸運的是,學會如何創建和使用動作掛鉤也是非常簡單的。首先,讓我們來看看怎樣將相關函數掛載到動作掛鉤上,怎樣創建新的動作掛鉤,清除現有的掛鉤和其他在 WordPress core中與動作掛鉤相關的函數。

將一個函數掛載到一個動作掛鉤上

其中最簡單的函數也許就是 add_action():它可以將某個函數掛載到我們即將使用的動作掛鉤上

  • <?php
  • ?
  • add_action( $hook_name, $function_name, $priority, $arguments );
  • ?
  • ?>
  • 讓我們來看看這些參數意味著什么:

    • $hook_name 是所使用的動作掛鉤的名稱。
    • $function_name 是函數名。
    • $priority 是我們規定的一個整數,用來設置函數在此掛鉤中的優先級別。
    • $arguments 是函數所使用的和動作掛鉤同時所允許的參數個數。

    讓我們來看一個簡單的例子:

  • <?php
  • ?
  • add_action( 'add_meta_boxes', 'my_function', 10, 2 );
  • ?
  • function my_function( $post_type, $post ) {
  • // do stuff with $post_type and $post
  • }
  • ?
  • ?>
  • 很簡單,對吧?

    從動作掛鉤中清除原有函數

    我們可以使用以下兩個函數清除動作掛鉤中的原有函數: remove_action() 和 remove_all_actions()

    首先來看一看它們是如何使用的:

  • <?php
  • ?
  • // remove_action( $hook_name, $function_name, $priority );
  • remove_action( 'login_enqueue_scripts', 'some_function', 10 );
  • ?
  • // remove_all_actions( $hook_name, $priority );
  • remove_all_actions( 'wp_enqueue_scripts', 10 );
  • ?
  • ?>
  • remove_action() 有三個參數:掛鉤名稱、要清除的函數名和使用 add_action() 時設置的優先級別。 remove_all_actions() 函數則沒有$function_name 參數,因為它會清除動作掛鉤中的所有函數。

    創建一個動作掛鉤

    如果你想要開發 WordPress插件或者主題的話,一個值得推薦的做法是在你的代碼中創建一些掛鉤,這樣其他的開發人員就可以繼續擴展你的插件和主題了。而要做到這一點,我們需要兩個函數:do_action() 和 do_action_ref_array()。讓我們來看看第一個函數是如何運作的:

  • <?php
  • ?
  • do_action( $hook_name, $arg1, $arg2, /* ... */ $argN );
  • ?
  • /*
  • ?* Usage:
  • ?*
  • ?* add_action( hook_name, my_function )
  • ?*
  • ?* function my_function( $arg1, $arg2 ) {
  • ?* // do stuff with $arg1, $arg2 and so on
  • ?* }
  • ?*
  • ?*/
  • ?
  • ?>
  • 正如你所看到的那樣,這個函數實際上可以包含無限多的參數,你可以根據需要來定義任意多的參數。如果你想在一個數組中保存這些參數,那么你還需要使用第二個函數:

  • <?php
  • ?
  • $args = array( $arg1, $arg2, /* ... */ $argN );
  • ?
  • do_action_ref_array( $hook_name, $args );
  • ?
  • /*
  • ?* Usage:
  • ?*
  • ?* add_action( hook_name, my_function )
  • ?*
  • ?* function my_function( $args ) {
  • ?* // do stuff with $args[0], $args[1] and so on
  • ?* }
  • ?*
  • ?*/
  • ?
  • ?>
  • 檢索動作掛鉤被調用的次數

    如果你想知道一個動作掛鉤被調用的次數,你可以使用一個簡單方便的函數來統計:

  • <?php
  • ?
  • function tuts_foo() {
  • $action_count = did_action( 'some_action_name' );
  • if ( 1 === $action_count ) {
  • // run code if 'some_action_name' has been fired only once
  • }
  • }
  • ?
  • ?>
  • 正如你看到的那樣,這個函數中唯一的參數就是動作掛鉤的命名。

    檢查是否存在指定的動作掛鉤

    假設你正在為一個流行的 WordPress 插件開發其他的擴展插件,你首先需要檢查用戶是否已經安裝了這個 WordPress 插件。(畢竟,如果這個插件沒有安裝并激活的話,那么你后來開發的插件也將無法使用。)

    為了進行這項檢查,你可以使用 has_action() 函數以確定這個插件的動作掛鉤是可以訪問的:

  • <?php
  • ?
  • if( has_action( 'some_popular_plugin_action' ) {
  • add_action( 'some_popular_plugin_action', 'extension_to_the_some_popular_plugin' );
  • } else {
  • wp_die( 'Sorry to kill your website but I need "Some Popular Plugin" to work with.' );
  • // CAUTION: This is a joke. Don't shut down a website because your plugin can't work with it.
  • }
  • ?
  • ?>
  • 就像 did_action() 函數,has_action() 函數只有一個參數:動作掛鉤的名稱。

    ?

    ?

    • [2015][老兵][WEB-MKV/871MB][漢語中字][1920x816p][無水印][HQC]
    • [2015]刺客聶隱娘.The.Assassin2015.TC720P.X264.AAC 國語中字 2.1G
    • [2015]非我/無我/換命游戲/換命法則(臺) Self.less.2015.720p.WEB-DL.AAC2.0.H264-RARBG 中英字幕1.32G
    • [2015]非我/換命法則/換命游戲/無我 Self.less.2015.1080p.WEB-DL.AAC2.0.H264-RARBG 4.12GB
    • [2015]我的母親.My.Mother.2015.720p.BluRay.x264-WiKi 4.27GB
    • [2011][霜花店-導演剪輯未刪減][韓版色戒][BD-MP4/2.09G][韓語中字][無水印][720P]
    • [2007]最后的兵團 The.Last.Legion.2007.1080p.BluRay.x264.DD5.1-FGT 7.18GB
    • [2007]尖峰時刻3/火拼時速3 Rush.Hour.3.2007.1080p.BluRay.x264.DTS-FGT 7.94GB
    • [2001]尖峰時刻2/火拼時速2/巔峰時刻2 Rush.Hour.2.2001.720p.WEB-DL.DD5.1.H264-FGT 2.97GB
    • [2013]神秘感染/尸控一夜.情/神秘接觸/感染 Contracted.2013.1080p.BluRay.x264.DTS-FGT 7.32GB
    • [2015]史蒂夫·喬布斯:機器人生 Steve.Jobs.2015.DOCU.720p.WEB-DL.DD5.1.H264-FGT 3.96GB

    轉載于:https://www.cnblogs.com/zzmzaizai/p/4788244.html

    總結

    以上是生活随笔為你收集整理的介绍50个 WordPress 动作挂钩的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。