我正在开发一个插件,并将其代码组织在不同的文件中。admin functions文件位于/admin
子文件夹。在这个文件中,我将脚本和样式排队,添加元框等等。
我想使用plugin_action_links_{$plugin_file}
钩子,但我不能让它工作。
由于此挂钩是在主插件文件之外添加的,因此不起作用:
add_filter( \'plugin_action_links_\' . plugin_basename( __FILE__ ), array( $this, \'add_action_links\' ) );
我的问题是,我怎样才能得到
plugin_basename()
子文件夹中不同文件中的主插件文件?有可能吗?
提前感谢
最合适的回答,由SO网友:AncientRo 整理而成
您只需将basename存储在主文件中的一个变量中,并在管理文件中引用该变量即可。
如果您使用的是我根据示例代码确定的类,那么只需在主类中创建一个静态属性,并在admin类中引用该属性即可:
class My_Plugin {
static $basename = null;
public function __construct {
$this->basename = plugin_basename(__FILE__);
}
}
class My_Plugin_Admin {
public function change_action_links() {
add_filter( \'plugin_action_links_\' . My_Plugin::$basename, array( $this, \'add_action_links\' ) );
}
}