运行时sudo wp install plugin pluginname --allowroot
它会导致错误:
PHP致命错误:未捕获错误:在/var/www/html/wp-content/plugins/pluginname/blocks中不在对象上下文中时使用$this。菲律宾比索:89
我们有一个自定义插件,其中包含以下内容:
class Block{
public static function Run() {
add_action(\'enqueue_block_editor_assets\',array($this,\'RegisterBlock\')); //complains on this line
通过WP admin安装时-工作正常。但使用WP-CLI时会失败。
任何帮助都将不胜感激
最合适的回答,由SO网友:Rup 整理而成
public static function Run() {
这个
"static" 这里的意思是该函数没有对象上下文,也就是说,它打算被称为
Block::Run()
而不是真的做块。也就是说,
$block = new Block(); $block->Run();
仍然有效,但方法中仍然没有$this集。
相反,您可以使用类名而不是$this来生成callable 对于静态方法:
class Block{
public static function Run() {
add_action(\'enqueue_block_editor_assets\', array(\'Block\', \'RegisterBlock\') );
但我不知道原始代码在wp admin中是如何工作的。这是肯定被调用的代码吗?