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