如何破解最近的评论默认窗口小部件?

时间:2011-06-09 作者:Drake

我想破解默认值Recent Comments widget也可以显示评论者的化身。

如果我直接在default-widgets.php

if ( $comments ) {
    foreach ( (array) $comments as $comment) {
        $output .=  \'<li class="recentcomments">\' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x(\'%1$s on %2$s\', \'widgets\'), get_comment_author_link(), \'<a href="\' . esc_url( get_comment_link($comment->comment_ID) ) . \'">\' . get_the_title($comment->comment_post_ID) . \'</a>\') . get_avatar($comment->user_id , 20) .  \'</li>\';
    }
}
但我不喜欢更改核心文件,我更喜欢用ortodox的方式来实现它。

我该怎么做?

2 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

听起来您只需要在插件中创建另一个自己的小部件。因此,从默认的widgets文件中复制完整的代码,并更改类名,然后只编辑您想要编辑的代码。

 class YOUR NEW WIDGET NAME extends WP_Widget {
       // ...

        foreach ( (array) $comments as $comment) {
                $output .=  \'<li class="recentcomments">\' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x(\'%1$s on %2$s\', \'widgets\'), get_comment_author_link(), \'<a href="\' . esc_url( get_comment_link($comment->comment_ID) ) . \'">\' . get_the_title($comment->comment_post_ID) . \'</a>\') . \'</li>\';
            }

    // ...

}
然后您只需注册新的小部件:

add_action( \'widgets_init\', \'register_my_widget\' );
function register_my_widget() {
     register_widget ( YOUR NEW WIDGET NAME );
}
所有这些都应该放在插件中,这样在更改主题时就不会丢失小部件。

更多信息:

http://xavisys.com/wordpress-widget/

http://codex.wordpress.org/Writing_a_Plugin

http://codex.wordpress.org/Widgets_API

SO网友:Elpie

您可以复制小部件代码,并使用所需的更改创建自己的插件,或者使用已有的插件之一。例如:http://wordpress.org/extend/plugins/bwp-recent-comments/

结束