web-dev-qa-db-fra.com

Comment pirater le widget par défaut des commentaires récents?

Je voudrais pirater la valeur par défaut Commentaires récents widget pour afficher également l'avatar de commenter.

La modification devrait être très facile, si je change directement le code dans 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>';
    }
}

mais je n'aime pas modifier les fichiers de base et je préférerais une façon plus orthodoxe de le mettre en œuvre.

Comment puis-je le faire?

1
Drake

On dirait que vous devez juste créer un autre widget dans un plugin. Copiez donc le code complet à partir du fichier de widgets par défaut, modifiez le nom de la classe, puis modifiez simplement le code que vous souhaitez modifier.

 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>';
            }

    // ...

}

Ensuite, il vous suffit d’enregistrer le nouveau widget:

add_action( 'widgets_init', 'register_my_widget' );
function register_my_widget() {
     register_widget ( YOUR NEW WIDGET NAME );
}

Tout cela devrait probablement aller dans un plugin pour ne pas perdre votre widget lorsque vous changez de thème.

Plus d'informations:

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

http://codex.wordpress.org/Writing_a_Plugin

http://codex.wordpress.org/Widgets_API

4
chrisguitarguy

Vous pouvez copier le code du widget et créer votre propre plug-in avec les modifications souhaitées, ou bien utiliser l'un des plug-ins existants qui le font déjà. Par exemple: http://wordpress.org/extend/plugins/bwp-recent-comments/

1
Elpie