Ich erstelle eine benutzerdefinierte Kommentarvorlage, und ich möchte keine Liste verwenden, um Kommentare anzuzeigen.
Standardmäßig fügt WordPress am Ende jedes Kommentars Folgendes ein:
Ich weiß, ich könnte den core wp-includes/comment-template.php
hacken, aber das würde mich nicht in der Lage sein, normal zu aktualisieren. Gibt es eine Möglichkeit, dies zu entfernen?
Hier ist meine functionen callback:
<section id="li-comment-"> <article id="comment-" class="comment comment_author_email == get_the_author_email()) { echo 'author-comment'; } ?>"> 'Reply to Comment', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
wp_list_comments()
akzeptiert einen walker
im Array des ersten Parameters. Dies ist eine class, die die Ausgabe rendert. Wenn Sie keine Walker_Comment
, wird die Standardklasse Walker_Comment
. Sie finden es in wp-includes/comment-template.php
.
Um die vollständige Kommentarliste zu ändern, erstellen Sie in Ihrer functions.php
einen benutzerdefinierten Walker, der die Standardklasse erweitert:
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 will be created } protected function comment( $comment, $depth, $args ) { // create the comment output // use the code from your old callback here } }
Und dann verwenden Sie diese class, wenn Sie wp_list_comments()
aufrufen:
wp_list_comments( array ( 'walker' => new WPSE_127257_Walker_Comment ) );