デフォルトの最近のコメントウィジェットをハッキングして、コメント投稿者のアバターも表示したいです。
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>';
}
}
しかし、私はコアファイルを変更するのは好きではありませんし、それを実装するためのもっとオーソドックスな方法を好みます。
どうすればいいの?
あなたがプラグインの中にあなた自身の他のウィジェットを作る必要があるように思えます。デフォルトのウィジェットファイルから完全なコードをコピーし、クラス名を変更してから、編集したいコードを編集してください。
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://wordpress.org/extend/plugins/bwp-recent-comments/ です。