我正在把一个主题分解成一堆插件,我想一个接一个地做,这样他妈的就不会失控了。
问题是,假设我有一个依赖于主题类的插件,我应该在哪里以及如何验证他的存在并加载它,如果不存在,我如何正确显示错误并避免加载插件,它是否在激活挂钩上?我对插件还很陌生,希望获得最佳实践,或者任何关于我的问题的好文档参考,谢谢!
我不需要检查另一个插件的存在,只需要另一个当前属于主题的代码。
最合适的回答,由SO网友:leymannx 整理而成
我建议不要在插件中使用你的主题中的方法。Only the other way around. Let your plugins provide methods to be used in the theme. 那么你可以简单地使用is_plugin_active()
.
尽管如此,您还是可以使用PHPclass_exists()
检查类的存在。另一种常见的做法似乎是让您的插件die;
在加载任何其他内容之前在最顶部。
<?php
/*
Plugin Name: My Plugin
Description: Lorem ipsum dolor sit amet.
Version: 1.0
Author: You
Author URI: https://example.com
*/
if ( ! class_exists(\'MyThemeClass\') ) {
die;
}
class MyPlugin() {
// ...
}
new MyPlugin;