Je crée un modèle de commentaire personnalisé et je ne souhaite pas utiliser une liste pour afficher des commentaires.
Par défaut, WordPress place le texte suivant à la fin de chaque commentaire:
</li><!-- #comment-## -->
Je sais que je pourrais pirater le wp-includes/comment-template.php
central, mais cela ne me permettrait pas de mettre à jour normalement. Y a-t-il un moyen de supprimer cela?
Voici mes fonctions de rappel:
<section id="li-comment-<?php comment_ID(); ?>">
<article id="comment-<?php comment_ID(); ?>" class="comment <?php if ($comment->comment_author_email == get_the_author_email()) { echo 'author-comment'; } ?>">
<div class="comment-content">
<aside class="comment-gravatar">
<?php echo get_avatar($comment, '50'); ?>
</aside>
<?php comment_text(); ?>
</div>
<div class="comment-data">
<div class="comment-author">
<p>Posted by : <?php echo get_comment_author(); ?></p>
<p>On <?php the_time('l, F jS, Y') ?> at <?php the_time() ?></p>
</div>
<div class="comment-reply">
<?php comment_reply_link( array_merge( $args, array( 'reply_text' => 'Reply to Comment', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
</div>
</div>
</article>
</section>
wp_list_comments()
accepte une walker
dans le tableau de son premier paramètre. C'est une classe qui rend la sortie. Si vous n'en fournissez pas, la classe par défaut sera utilisée, Walker_Comment
. Vous pouvez le trouver dans wp-includes/comment-template.php
.
Pour modifier la liste complète des commentaires, créez un lecteur personnalisé dans votre functions.php
dont extends
la classe par défaut:
class WPSE_127257_Walker_Comment extends Walker_Comment
{
function start_lvl( &$output, $depth = 0, $args = array() ) {
// do nothing.
}
function end_lvl( &$output, $depth = 0, $args = array() ) {
// do nothing.
}
function end_el( &$output, $comment, $depth = 0, $args = array() ) {
// do nothing, and no </li> will be created
}
protected function comment( $comment, $depth, $args ) {
// create the comment output
// use the code from your old callback here
}
}
Et vous utilisez ensuite cette classe lorsque vous appelez wp_list_comments()
:
wp_list_comments(
array (
'walker' => new WPSE_127257_Walker_Comment
)
);