不幸的是,这并不像您预期的那么容易,使用过滤器也不能很好地实现。WordPress通常为小部件提供很少的挂钩,更不用说小部件内容了。然而,由于所有小部件都是由类生成的,因此您可以通过创建自己的小部件来扩展WordPress提供的功能,扩展最近发布的小部件。
有关小部件以及如何注册它们的基本信息,请查看the Codex.
对于这种特定情况下的实现,您必须首先创建一个类来扩展最近发布的小部件类(WP_Widget_Recent_Posts
):
class MyPlugin_Widget_Recent_Posts_Bootstrap extends WP_Widget_Recent_Posts {
}
由于您希望该小部件与普通的“最近发布”小部件相同,因此不必对
update
和
form
方法,这些方法用于显示小部件设置表单并相应地更新小部件。因此,您不必在类中实现这些方法,只需从
WP_Widget_Recent_Posts
.
您必须实现的两个方法是构造函数(__construct
) 以及小部件显示方法(widget
). 在构造器中,只需按照codex中的描述设置小部件设置:
class MyPlugin_Widget_Recent_Posts extends WP_Widget_Recent_Posts {
public function __construct() {
WP_Widget::__construct(
\'myplugin-recent-posts\',
__( \'My Plugin: Recent Posts\', \'myplugin\' ),
array(
\'classname\' => \'myplugin_widget_recent_posts\',
\'description\' => __( \'My recent posts widget\', \'myplugin\' )
)
);
}
}
接下来,您必须实现display方法,
widget
. 现在,尽管这听起来(而且是)一个非常“丑陋”的解决方案,但这是你最好的选择:你应该复制
display
方法来自
WP_Widget_Recent_Posts
并根据您的需要进行更改。除了要添加的类名之外,我建议您做的唯一更改是更改缓存键
widget_recent_posts
大概是
myplugin_widget_recent_posts
.
这需要您编写一些代码,但不幸的是,这是目前最好的解决方案。