Wordpress过滤器Vs.动作

时间:2016-11-10 15:07:03

标签: wordpress

我在functions.php中有一些代码,你可以在下面看到。当我使用动作挂钩时,函数不会执行,但是当我挂钩它的过滤器时,有人可以解释为什么,最好的做法是什么?

ACTION

// ADD £40 ON SUCCESFUL SUBSCRIPTION PAYMENT (EXAMPLE 1)
function custom_add_funds($user_id) {

    // get current user's funds
    $funds = get_user_meta( $user_id, 'account_funds', true );

    // add £40
    $funds = $funds + 40;

    // add funds to user
    update_user_meta( $user_id, 'account_funds', $funds );

}
add_action('processed_subscription_payment', 'custom_add_funds');

过滤

// ADD £40 ON SUCCESFUL SUBSCRIPTION PAYMENT (EXAMPLE 2)
function custom_add_funds_two($user_id) {

    // get current user's funds
    $funds = get_user_meta( $user_id, 'account_funds', true );

    // add £40
    $funds = $funds + 40;

    // add funds to user
    update_user_meta( $user_id, 'account_funds', $funds );

}
add_filter('processed_subscription_payment','custom_add_funds_two');

1 个答案:

答案 0 :(得分:0)

两种功能都有不同的功能。 操作是基于事件的。假设你想在提交表单或页面加载后调用一个函数,那么你将使用add_action函数。

过滤器用于更改当前流量。就像一个页面有内容“你好我的测试内容”,并且你想要显示“你好世界这是你的测试内容”这样做你将使用过滤器。< / p>

有关详细信息,请参阅以下链接:

Difference between add_filter versus add_action https://wordpress.stackexchange.com/questions/120339/difference-between-do-action-and-add-action