Wie kann man Standardkommentare durch benutzerdefiniertes HTML ersetzen?

Ich werde die Standardliste der Kommentare und das Kommentarformular durch das Kommentarfeld von Facebook ersetzen. Soweit ich weiß, gibt es die function wp_list_comments () . Wie kann ich diese function durch meine eigene ersetzen?

Update: Ich möchte integrierte WordPress-Kommentare vollständig ignorieren.

Wenn ich versuche, meinen Code am Ende des Inhalts hinzuzufügen, funktioniert es:

add_filter ('the_content', 'fbcommentbox', 100); 

Aber der folgende Code nicht:

 add_filter ('comments_template', 'fbcommentbox', 100); 

Solutions Collecting From Web of "Wie kann man Standardkommentare durch benutzerdefiniertes HTML ersetzen?"

Beachten Sie Folgendes:

 add_filter ('comments_template', 'fbcommentbox', 100); 

Wir erwarten, dass fbcommentbox() den Pfad zur neuen Kommentardatei fbcommentbox() . Der Standard ist der Pfad von comments.php .

Wenn Sie die Datei fbcommentbox.php in Ihrem fbcommentbox.php erstellen, können Sie fbcommentbox.php versuchen:

 add_filter( 'comments_template', 'fbcommentbox', 100); function fbcommentbox( $theme_template ) { // Path to our new comment template file $new_theme_template = get_template_directory() . '/fbcommentbox.php'; // Override if it exsits if( file_exists( $new_theme_template ) ) $theme_template = $new_theme_template; return $theme_template; } 

Wenn die Datei fbcommentbox.php nicht existiert, wird stattdessen die Standarddatei geladen. Für ein get_stylesheet_directory() Thema würden wir get_stylesheet_directory() .

Hier ist eine kürzere Version:

 function fbcommentbox( $theme_template ) { return locate_template( 'fbcommentbox.php' ); } 

wo die locate_template() die ganze harte Arbeit erledigt.

Aktualisieren

Sie haben jedoch erwähnt, dass Sie stattdessen wp_list_comments() überschreiben wp_list_comments() .

Hier ist eine Möglichkeit, das zu ändern, indem Sie das echo Argument auf false ändern:

 add_filter( 'wp_list_comments_args', function( $args ) { // Display fbcommentbox.php get_template_part( 'fbcommentbox' ); // Disable output of wp_list_comments() $args['echo'] = 0; return $args; } ); 

und fbcommentbox.php stattdessen die fbcommentbox.php Vorlage aus.