comments.php - Existieren überhaupt Kommentare?
Zunächst ist zu prüfen, ob überhaupt Kommentare vorhanden sind.
Wenn nicht, wird die comments.php nicht ausgeführt.

Gibt es überhaupt einen Kommentar?
<?php if ( have_comments() ) : ?>
.....
<?php endif; ?> 

Wenn Kommentare vorhanden sind? Wie viele?
Ausgabe, wie viele Kommentare es gibt.

<!-- Anzahl der Kommentare im Zahlenformat z.B.1.000 -->
<!-- Die Überschrift des gerade angezeigten Beitrages  -->
<p>Es gibt derzeit: <?php echo numer_format_i18n(get_comments_number(); ?>
Kommentare zum Beitrag <?php echo get_the_title(); ?></p>

Alle Kommentare ausgeben
<!-- alle vorhandenen Kommentare ausgeben  -->
<?php wp_list_comments(); ?>

 

 


comments.php - Formulare formatieren
Die Formatierung besorgt ein Array, ähnlich wie bei der single.php.

<?php
$Aussehen = array(     

  'max_depth' => ' ',
  'style' => 'ul',
  'type' => 'all ',
  'reply_text' => 'Reply ',
  'page' => ' ',
  'per_page' => ' ',
  'avatar_size' => '32'.
  'reverse_top_level' => null',
  'reverse_children' => ' ',
  'format' => 'html5'
  'short_ping'  =>   false,
   'echo'  =>  true,
);      
?>      

 



Die Einträge

max_depth
Verschachtelungstiefe bei Antworten auf Antworten.
1 = Antwort auf einen Kommentar, jedoch nicht mehr die Antwort auf diese Antwort.
keine Eintrag = es werden alle Kommentare mit Antworten angezeigt.

style
ul oder ol = Jeder Kommentar wird in Form einer Aufzählung (Liste) ausgegeben
div = Jeder Kommentar wird in ein <div> ... </div> eingefasst.

Beispiel 1
<?php $Aussehen = array {
   'style' => 'ul'
); ?>

<!--  Die Liste muss noch als Liste ausgegeben werden  -->

<ul>
<?php wp_list_comments($aussehen); ?>
</ul>

Beispiel 2
<?php $Aussehen = array {
   'style' => 'div'
); ?>



type

Festlegung der Arten von Kommentaren, die ausgegeben werden sollen
all = alle Kommentare
trackback = nur Trackback-Kommentare
(Trackbacks sollen Blogbetreiber darüber informieren, dass Sie in einem Beitrag erwähnt wurden.)
pingback = nur Pingback-Kommentare
(Pingbacks sind ein Hinweis darauf, dass ein Blog-Beitrag in einem anderen WordPress-Blog verlinkt wurde)
comment
normale Kommentare der Besucher

reply_text
Text für den Link, um direkt auf einen Kommentar zu antworten

page
Wenn Kommentare auf mehreren Seiten verteilt sind, festlegen, welche dieser Seiten WordPress anzeigen soll

per_page
Anzahl der Kommentare pro Seite

avatar_size
Größe des Avatar-Bildes in Pixel (1 bis 512)
0 = keine Anzeige eines Avatar Bildes  Avatar = Benutzerbild für Kommentare

reverse_top_level
true = neueste Kommentare zuerst anzeigen

reverse_children
true = neueste Antworten zu Kommentare zuerst, danach die älteren

format
html5 = Wert im HTML5-Standard

short_ping
true = Ausgabe der Track- und Pingback-Kommentare in verkürzter Form

echo
1 = Kommentare werden direkt ausgegeben
0 = Kommentare werden in eine Variable ausgegeben

 

 


comments.php - Code

<!-- Passwortschutz vorhanden? -->
<?php
if ( post_password_required() ) {
return;
}
?>


<!-- Anzahl der Kommentare nennen, wenn Kommentare vorhanden sind -->
<!-- Anzahl der Kommentare im Zahlenformat z.B.1.000 -->
<?php if ( have_comments() ) : ?>


<!-- Die Anzahl der Kommentare wird angezeigt -->
<p>Es gibt derzeit: <?php echo number_format_i18n(get_comments_number(); ?>
Kommentare
zum Beitrag <?php echo get_the_title(); ?></p>
<?php endif; ?>



<!-- alle vorhandenen Kommentare ausgeben -->

<?php wp_list_comments(); ?>

<!-- Links zum Umblättern: -->
<?php if ( get_comment_pages_count() > 1 && get_option('page_comments') ) : ?>

    <p> <?php previous_comments_link('&larr; Ältere Kommentare'); ?>
           <?php next_comments_link('Neuere Kommentare &rarr;'); ?>
    </p>

<?php endif; ?>

<!-- Formular erzeugen: -->
<?php comment_form(); ?>

<!--  Prüfung, ob Kommentar-Funktion abgeschaltet. Nur wenn ja, dann eine Meldung -->
<?php if ( ! comments_open() ) : ?>
   <p>Die Anzeige der Kommentare ist abgeschaltet</p>
<?php endif; ?>







functions.php - Funktion theaterportal

In der Datei  functions.php folgenden Code eingeben
<?php
function theaterportal_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
}
?>

$comment
erhält von WordPress den nächsten Kommentar, der angezeigt werden soll

$args
erhält die Formatierungen aus dem Array

$depth
Verschachtelungstiefe

$GLOBALS['comment'] = $comment;
Die Funktionen funktionieren damit korrekt, wenn sie den Kommentar in $GLOBALS['comment'] erwarten



Bestandteile des Kommentars ausgeben

<?php
function theaterportal_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
?>

<!-- Klassennamen und ID für den Kommentar holen  -->
<li <?php comment_class(); ?> id="<?php comment_ID(); ?> > 

<?php
}
?>

comment_class()
Klassennamen für den Kommentar

comment_ID()
Eindeutige ID für den Kommentar

<!--  Avatar-Bild einfügen in 44 Pixel  -->
<p><?php echo get_avatar($comment, 44); ?></p>

oder
<!--  Avatar-Bild einfügen, Grösse aus dem Array übernehmen  -->
<p><?php echo get_avatar($comment, $args['avatar_size']); ?></p>


<!-- Namen des Autor ausgeben. der gleichzeitig ein Link zu seinen Beiträgen ist  -->

<p><?php echo get_comment_author_link(); ?></p>


<!--  Datum + Uhrzeit der Veröffentlichung  -->

<p>
<?php echo get_comment_date(); ?>
<?php echo get_comment_time(); ?>
</p>
Die Formate stammen aus den Einstellungen im Backend unter  Einstellungen / Allgemein.
26.11.2018 =  <?php echo get_comment_date("d.m.Y"); ?>
16:20 Uhr<?php echo get_comment_time("H:i"); ?>


<!-- Der Kommentar  -->
<?php comment_text(); ?>

 

<!--  Ob Kommentar noch freigegeben werden muss -->
<!-- 0 = noch nicht freigegeben  -->
<?php if ( $commt->comment_approved == '0') : ?>

<p>Der Kommentar muss noch freigegeben werden </p>
<?php endif; ?>

<!-- Link zur direkten Antwort zum Kommentar unter dem Kommentar platzieren  -->
<?php comment_reply_link( array_merge( $args. array(
'reply_text' => 'Antwort schreiben',
'before' => '<p>,
'after' => '</p>,
'depth' => $depth,
'max_depth' => $args['max_depth'] 



Kompletter Code der functions.php mit Funktion theaterportal 

<!-- Menü registrieren - Standort festlegen - -->
<?php
register_nav_menu( 'mainmenu', 'Hauptmenue' );

// Bereich in der Sidebar reservieren --> //
register_sidebar(array(

// Name des Bereiches //
'name' => 'Seitenleiste',

// Interner für den Widget-Bereich //
'id' => 'sidebar-right',

// Beschreibung für später, wo die Widgets positioniert werden //
'description' => 'Die Seitenleiste rechts',

));
?>

<!-- Beitragsbilder anzeigen -->
<?php add_theme_support( 'post-thumbnails' ); ?>

<!--  Die Funktion  -->
<?php
function theaterportal_comment($comment, $args, $depth) {

$GLOBALS['comment'] = $comment;
<!--
$comment
erhält von WordPress den nächsten Kommentar, der angezeigt werden soll

$args
erhält die Formatierungen aus dem Array

$depth
Verschachtelungstiefe

$GLOBALS['comment'] = $comment;
Die Funktionen funktionieren damit korrekt, wenn sie den Kommentar in $GLOBALS['comment'] erwarten
-->

<!-- Ausgabe als Liste: -->
<li <?php comment_class(); ?> id="<?php comment_ID(); ?>" >

<!-- Avatar-Bild einfügen, Grösse aus dem Array übernehmen -->
<p><?php echo get_avatar($comment, $args['avatar_size']); ?></p>

<!-- Namen des Autor ausgeben. der gleichzeitig ein Link zu seinen Beiträgen ist -->
<p><?php echo get_comment_author_link(); ?></p>

<!-- Datum + Uhrzeit der Veröffentlichung -->
<p>
<?php echo get_comment_date(); ?>
<?php echo get_comment_time(); ?>
</p>

<!-- Der Kommentar -->
<?php comment_text(); ?>

<!-- Ob Kommentar noch freigegeben werden muss -->
<!-- 0 = noch nicht freigegeben -->
<?php if ( $comment->comment_approved == '0') : ?>
<p>Der Kommentar muss noch freigegeben werden </p>
<?php endif; ?>

<!-- Link zur direkten Antwort zum Kommentar. Unter dem Kommentar platzieren -->
<?php comment_reply_link( array_merge( $args. array(
'reply_text' => 'Antwort schreiben',
'before' => '<p>,
'after' => '</p>,
'depth' => $depth,
'max_depth' => $args['max_depth']
))); ?>

<?php
} ?>


comments.php - Links zum Umblättern

Wenn es so viele Kommentare gibt, die nicht mehr auf nur einer Seite passen,
können diese auf mehrere Seiten verteilt werden. Zur Navigation zu den Seiten
erstellen Sie eine Navigation in Form von Links zum Umblättern.

<!--  Prüfung, ob die Kommentare auf mehrere Seiten verteilt wurden und wenn ja auf wie viele  -->
<?php if (get_comment_pages_count() > 1 && get_option( 'page_comments') ) : ?>

<p>

<!--
Wenn mehrere Seiten mit Kommentaren, dann wird ein Link Ältere Kommentare erzeugt  
&larr = Pfeil nach links  &rarr = Pfeil nach rechts / Beide Links erscheinen in einem neuen Absatz
-->
<?php previous_comments_link('&larr; Ältere Kommentare'); ?>

<!-- Wenn mehrere Seiten mit Kommentaren, dann wird ein Link Neuere Kommentare erzeugt  --> 
<?php next_comments_link('Neuere Kommentare &rarr;'); ?>
</p>

<?php endif; ?>




Der Code in der comments.php

<!-- Links zum Umblättern: --> <!-- Prüfung, ob die Kommentare auf
mehrere Seiten verteilt wurden
und wenn ja auf wie viele -->
<?php if (get_comment_pages_count() > 1 && get_option( 'page_comments') ) : ?>

<p>
<!--
Wenn mehrere Seiten mit Kommentaren, dann wird ein Link Ältere Kommentare erzeugt
&larr = Pfeil nach links &rarr = Pfeil nach rechts / Beide Links erscheinen in einem neuen Absatz
-->
<?php previous_comments_link('&larr; Ältere Kommentare'); ?>

<!-- Wenn mehrere Seiten mit Kommentaren, dann wird ein Link Ältere Kommentare erzeugt -->
<?php next_comments_link('Neuere Kommentare &rarr;'); ?>
</p>

<?php endif; ?>