如果你有一个由以下发起的小部件:
function someWidgetLoader () {
register_widget( 'someWidget' );
}
add_action( 'widgets_init', 'someWidgetLoader ' );
有没有办法检查某些 Widget 是否已注册到 register_widget() 函数?因为如果已经存在,它会发送一个致命错误,指出"无法重新声明类"
谢谢大家
给你的小部件一个与其他任何内容都不匹配的名称/辅助信息域。
此外,如果它确实存在,您将收到类存在错误或一些内部WP错误。所以包装你的小部件类
if( ! class_exists('someWidget')
我遇到了完全相同的错误。经过一些故障排除后,我发现在添加了小部件类的主题文件中,该类的定义是错误的。下面是添加"注释"小部件的示例。
<?php
class Comments extends WP_Widget {
function Comments() {
$widget_ops = array('description' => 'This is Comments widget.' );
parent::WP_Widget(false, __('SampleTheme - Comments', 'sampletheme'),$widget_ops);
}
}
如上所示,构造函数是使用 PHP 4 样式定义的,而不是 PHP 8。然后使用 PHP 4 样式构造函数调用父级。
所以我只是通过修复构造函数和父调用来修复它,如下所示:
<?php
class Comments extends WP_Widget {
function __construct() {
$widget_ops = array('description' => 'This is Comments widget.' );
parent::__construct(false, __('Sample Theme - Comments', 'sampletheme'),$widget_ops);
}
}