我创建了一个小部件,它还必须使用wp\\u页脚挂钩运行一些代码。但是如果扩展WP\\u小部件,WP\\u页脚会运行两次!是否有人已经过了同样的问题?
以下是一个示例:
/*
Plugin Name: Test
Description: Test Plugin by Romulo De Lazzari
Version: 1.0
Author: Romulo De Lazzari
*/
new Test();
class Test extends WP_Widget{
public function __construct(){
parent::__construct(\'test-widget\', \'Test Widget\');
add_action(\'widgets_init\', array($this, \'register_my_widget\'));
add_action(\'wp_footer\', array($this, \'do_something\'));
}
public function register_my_widget(){
return register_widget("Test");
}
public function do_something(){
echo "<p>Hello! This is a test!</p>";
}
public function widget($args, $instance) {
}
public function form($instance){
}
public function update($new_instance, $old_instance){
}
}
方法do\\u something()在这里运行了两次,如果去掉“Widget部分”,它运行得很好。有人能帮帮我吗?
提前谢谢你,罗慕洛
最合适的回答,由SO网友:Chip Bennett 整理而成
该代码看起来不符合当前的Widgets API。也许你的问题是相关的?
第一个潜在问题:你的班级test
应该是plugin-slug-test
, 以避免命名冲突。
第二个潜在问题:WP\\u Widget扩展类中的唯一函数应该是:
函数plugin-slug-test(){}函数小部件($args,$instance){}
函数更新($new\\u instance,$old\\u instance){}函数表单($instance){}您需要移动
add_action()
在Widget类的外部调用。
第三个潜在问题:为什么要将所有小部件类函数声明为公共的?
第四个潜在问题:我认为你不需要申报new Test();
对于小部件类。