設計HOOK和啟動HOOK

設計HOOK和啟動HOOK

    設計HOOK

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /*--------------- Action Hook Function---------------*/
    // 增加要鈎上'do_more'這個hook的hook function,
    // 並為此hook function取名叫more_func。
    // 第一個參數是hook名稱、第二個是hook function名稱
    add_action('do_abc', 'fun_abc');
    // 實作more_func的內容,不需回傳值
    function fun_abc()
    {
        echo 'do more thing...';
    }
      
    /*--------------- Filter Hook Function ---------------*/
    // 增加要鈎上'get_special' hook的hook function,
    // 並為此hook function取名叫special_func。
    // 參數1是hook名稱、參數2是hook function名稱
    // 參數3是Priority(優先序)、參數4是hook function參數的數目
    add_filter('do_xyz', 'fun_xyz', 10, 2);
    // 實作special_func的內容,需要給它回傳值
    function fun_xyz($a, $b)
    {
        $c = $a.' & '.$b; //做一些事,例如把兩個參數連接起來
        return $c;        //回傳值
    }

    啟動HOOK

    1
    2
    3
    4
    5
    6
    7
    /*--------------- Action Hook ---------------*/
    // 埋下一個名叫'do_more'的action hook
    do_action('do_abc');
      
    /*--------------- Filter Hook ---------------*/
    // 埋下一個名叫'get_special'的filter hook,注意它會有回傳值
    $c = apply_filters('do_xyz',$a, $b);