設計HOOK和啟動HOOK

設計HOOK和啟動HOOK

    設計HOOK

    /*--------------- 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

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