我正在开发一个插件,正在考虑最佳实践。拥有全局对象有多常见?当前打开plugins_loaded
我正在创建类的全局对象:
add_action( \'plugins_loaded\', array( \'Test_Plugin\', \'init\' ) );
...
public static function init() {
global $testerski;
$testerski = __CLASS__;
$testerski = new $testerski;
}
这允许我使用
global $testerski
调用任何变量或方法。这是常见的做法吗?
我的另一个担忧是,由于我正在创建一个全局对象,根据我的理解,任何挂钩都必须具有公共功能,以便WordPress可以调用它们。问题是,我可以从全局对象调用这些用于挂钩的函数。例如,我将一些挂钩注册为:
public function __construct() {
add_action( \'init\', array( $this, \'test_plugin_setup\' ) );
add_action( \'template_include\', array( $this, \'test_templates\' ) );
add_filter( \'cron_schedules\', array( $this, \'test_add_monthly_schedule\' ) );
}
public function test_templates( $template ) {
...
}
我可以用
$testerski->test_templates()
. 既然这个函数不应该直接调用,而且只用于挂钩,那么有没有办法防止像这样直接调用它?这样的事情是危险的还是我想得太多了?
我注意到有些钩子有警告,比如wp_enqueue_scripts
将通知您它的调用不正确。