如何使用另一个插件调用命名空间的函数或方法

时间:2019-03-12 作者:Joe Fletcher

我正在使用一个插件的操作,该操作需要调用另一个插件的函数。该函数以名称分隔。

通常,我会使用以下内容:

add_action( \'hook_name\', \'function_name\' );
但是插件的函数是命名空间和/或面向对象的,因此我不确定在这种情况下如何引用该函数。

一、 例如,如何引用该特定函数?

2 个回复
最合适的回答,由SO网友:Joe Fletcher 整理而成

下面是对我有用的通用代码。如果有人想要一个真实的例子,请告诉我。

这将创建一个调用插件函数的函数,假定名称空间为“自定义”

add_action( \'hook_name\', \'my_custom_function_name\' );
function my_custom_function_name() {
    // Check if "Custom Plugin" installed and activated
    if ( did_action( \'plugin/loaded\' ) ) {
        // call the Plugin\'s function (clear_cache function example here)
        \\Custom\\Plugin::instance()->files_manager->clear_cache();
    }
}

SO网友:hamdirizal

add_action\'s第二个参数是acallable, 它可以接受字符串(就像您在示例中所做的那样)或类实例和函数名的数组。

例如,如果要调用方法get_age() 从…起Person 类,您可以执行以下操作:

$person = new Person();
add_action( \'hook_name\', array($person , \'get_age\') );

相关推荐

为内置钩子调用do_action和Apply_Filters是否安全?

我正在开发一个插件,它需要复制一些内置的WordPress逻辑。(此逻辑不能用任何内置方法调用,也不能独立连接到。)在这个动作序列中,WordPress的正常行为是调用动作挂钩(do_action(\'wp_login\', ...)) 和过滤器挂钩(apply_filters(\'login_redirect\', ...)).如果在对应于在Core中调用它们的时间点调用它们,那么直接从我的插件调用这些内置钩子是否安全(并且是可以接受的做法)?或者,其他与此相关的开发人员期望在非常特定的时间执行操作的风