我想弄清楚,如果相同的功能掛鉤到多個動作,我可以找出哪個動作調用它?WordPress的:找出哪個鉤叫功能
我想在創建和刪除用戶時發送API調用;兩種情況下的功能都是相同的,只是一個數據點根據創建或刪除的情況而不同。它感覺不到兩個相同的功能只有一個區別,但我不確定我能做到這一點。
建議?
我想弄清楚,如果相同的功能掛鉤到多個動作,我可以找出哪個動作調用它?WordPress的:找出哪個鉤叫功能
我想在創建和刪除用戶時發送API調用;兩種情況下的功能都是相同的,只是一個數據點根據創建或刪除的情況而不同。它感覺不到兩個相同的功能只有一個區別,但我不確定我能做到這一點。
建議?
這就是功能current_filter()
:
add_action('plugins_loaded', 'common_action');
add_action('admin_init', 'common_action');
function common_action()
{
switch(current_filter())
{
case 'plugins_loaded':
// do_something('Plugins loaded');
break;
case 'admin_init':
// do_another_thing('Admin init');
break;
}
}
我有同樣的問題 - 運行的功能,其行動觸發它的時候?關鍵是$wp_current_filter
。
例子:
// Both of these will call the same function
do_action('wp', 'my_function');
do_action('init', 'my_function');
function my_function() {
// How do I know if this was 'init', 'wp', or some other hook?
// Global in the WordPress variable $wp_filter
global $wp_current_filter;
if ($wp_current_filter == 'wp' || in_array('wp', $wp_current_filter)) {
// Do my "wp" based stuff....
}
if ($wp_current_filter == 'init' || in_array('init', $wp_current_filter)) {
// Do my "init" based stuff....
}
}
注:這是一個糟糕的用例的例子,但它傳達的原則!