实例化可用于所有插件函数的类

时间:2013-12-19 作者:Vorta

我正在为一个站点开发一个插件,该站点必须与数据库中的几个非wp表进行通信。为此,我创建了一个包含所有MySQL相关函数的类。

当您在插件中声明函数时,您可以在主题中轻松调用它。但是如何在课堂上做到这一点呢?有没有一种方法可以用wordpress init实例化它,并将其提供给插件和主题?

感谢您抽出时间!:)

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

Ryan McCue有个好主意plugin Hopper: 为自定义筛选器添加回调以返回当前实例。

插件的示例代码:

class Plugin_Class {
    public function __construct()
    {
        add_filter( \'get_plugin_class\', array ( $this, \'provide_instance\' ) );
    }

    function provide_instance() {
        return $this;
    }
}
在主题或第二个插件中,您现在可以像这样访问实例:

$plugin_class = apply_filters( \'get_plugin_class\', NULL );

if ( is_a( $plugin_class, \'Plugin_Class\' ) )
{
    // use the plugin class instance
}

结束