在我看来,这是一个有效的方案,它是一种可靠的方式,可以将您的插件作为其他插件的接口,但每个插件都可以是活动的或非活动的,wp不会崩溃(与直接调用可能不存在的方法相比,因为插件没有激活
我通过传递一个对象来解决它,如下所示:
// define action with param for result transport
function some_action($someParam, $transport) {
// do stuff
if($someParam > 10) {
$transport->return = true;
} else {
$transport->return = 5;
}
}
add_action(\'some_action\', \'some_action\', 10, 2);
// call action
do_action(\'some_action\', 5, $transport = new stdClass());
var_dump($transport->return);
// output true
do_action(\'some_action\', 11, $transport = new stdClass());
var_dump($transport->return);
// output 5