WordPress的过滤器VS. action

问题描述:

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

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'); 

FILTER

// 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'); 

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

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

进一步的细节,你可以看到以下链接:

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