当前未修改的输出类似于下面的→
<div id="archives-4" class="widget widget_archive">
<h2 class="h2b">Archives</h2>
<ul>
<li><a href="http://........./2017/11/">November 2017</a> (3)</li>
<li><a href="http://........./2017/10/">October 2017</a> (9)</li>
<li><a href="http://........./2017/09/">September 2017</a> (6)</li>
<li><a href="http://........./2017/05/">May 2017</a> (7)</li>
<li><a href="http://........./2017/04/">April 2017</a> (1)</li>
<li><a href="http://........./2017/03/">March 2017</a> (5)</li>
<li><a href="http://........./2017/02/">February 2017</a> (8)</li>
<li><a href="http://........./2017/01/">January 2017</a> (1)</li>
</ul>
</div>但我希望最终,它应该看起来像这个→
<div id="archives-4" class="widget widget_archive newinjected_class1">
<h2 class="h2b">Archives</h2>
<ul class="newinjected_class2">
<li><a href="http://........./2017/11/">November 2017</a> (3)</li>
<li><a href="http://........./2017/10/">October 2017</a> (9)</li>
<li><a href="http://........./2017/09/">September 2017</a> (6)</li>
<li><a href="http://........./2017/05/">May 2017</a> (7)</li>
<li><a href="http://........./2017/04/">April 2017</a> (1)</li>
<li><a href="http://........./2017/03/">March 2017</a> (5)</li>
<li><a href="http://........./2017/02/">February 2017</a> (8)</li>
<li><a href="http://........./2017/01/">January 2017</a> (1)</li>
</ul>
</div>你有没有意识到新的两门课:
newinjected_class1
newinjected_class2这是否可能,我们可以通过某种过滤器来实现这一点,以便只修改输出而不改变小部件的正常行为?
发布于 2018-04-14 23:32:24
不,没有过滤器可以这样做。为了实现这一点,您需要创建自己版本的小部件。
您可以在以下文件夹中找到默认的WordPress小部件: WordPress安装中的/wp-includes/widgets。
只需将代码从相应的小部件.php文件中复制到主题或插件中:
class-wp-widget-archives.php
和
class-wp-widget-categories.php
然后根据您的喜好编辑小部件代码。
最后,您需要使用register_widget()函数按照WordPress Codex页面- https://codex.wordpress.org/Function_参考/登记_小部件注册小部件。应该是这样的:
function myplugin_register_widgets() {
register_widget( 'CustomArchiveWidget' );
register_widget( 'CustomCategoriesWidget' );
}
add_action( 'widgets_init', 'myplugin_register_widgets' );https://wordpress.stackexchange.com/questions/300791
复制相似问题