Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Enträtselung der Geheimnisse der Comments.php-Datei von WordPress

by
Read Time:13 minsLanguages:

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

WordPress scheint heutzutage überall zu sein, und es ist kein Wunder, dass es einfach zu bedienen und anzupassen ist. In diesem Tutorial werde ich die Kommentare.php-Struktur des Standard-WordPress-Themas analysieren und Ihnen verschiedene Codeausschnitte geben, um das Skinnen zu vereinfachen.

Als Referenz habe ich auch ein kleines Inhaltsverzeichnis beigefügt.

  1. Das PHP-Backend
  2. Allgemeiner Code
    1. Verhindern des direkten Zugriffs auf comment.php
    2. Ist ein Passwort erforderlich?
  3. Anzeigen der Kommentare
    1. Grundlegende Tags für Kommentarvorlagen
    2. Das Endergebnis
  4. Das Kommentarformular
    1. Übersicht über bedingte Anweisungen
    2. Formular einfügen
  5. Einige kleine Tricks
    1. Gravatare
    2. Kommentarnummern
    3. Kommentar-Links
    4. Kommentare bearbeiten
    5. Wechselnde Farben für Kommentare
    6. Anzeigen der zulässigen Tags
    7. Kommentare RSS-Link
  6. Abschluss

1. Das PHP-Backend

Das ist der rohe PHP-Code, mit dem Ihre Datei comments.php funktioniert. Für einen Anfänger mag dies einschüchternd aussehen. Keine Sorge: Mit diesem Tutorial wird alles in Ihrer Kommentardatei kristallklar!


2. Allgemeiner Code

Verhindern des direkten Zugriffs auf comment.php

Diese Codezeile verhindert, dass Benutzer versehentlich die Datei comment.php anzeigen. Diese Seite soll in eine Post-Seite aufgenommen werden, nicht separat. Sie könnten dies als Sicherheitsmaßnahme betrachten. Innerhalb der Anweisung können Sie jede Nachricht einfügen, die der Person angezeigt werden soll, die die Datei comment.php anzeigt, vorzugsweise eine die-Anweisung.

Ist ein Passwort erforderlich?

Diese Anweisung (naja, eigentlich 2, aber es ist sinnvoller, wenn Sie sie als eine betrachten) prüft, ob ein Passwort erforderlich ist, um den Beitrag anzuzeigen. Wenn Sie nicht über das Passwort zum Anzeigen des Beitrags verfügen, dürfen Sie die Kommentare natürlich auch nicht anzeigen.

Das erste if prüft, ob ein Passwort festgelegt ist. Die zweite if-Anweisung prüft, ob ein Cookie mit einem Kennwort vorhanden ist, und zeigt die entsprechende Meldung an, wenn es nicht vorhanden ist. Sie können die Fehlermeldung anpassen, indem Sie alles, was Sie auswählen, in die zweite if-Anweisung einfügen.


3. Anzeigen der Kommentare

Diese erste bedingte Anweisung (if($comment)) prüft, ob Kommentare vorhanden sind, und durchläuft sie dann mit einer foreach-Anweisung. In der foreach-Anweisung wird die folgende bedingte Anweisung angezeigt: if($comment->comment_approved == '0'). Dies prüft, ob der Kommentar genehmigt wurde, und zeigt eine Meldung an, wenn er noch nicht genehmigt wurde.

Ein Beispiel hierfür wäre der folgende Code.

Grundlegende Tags für Kommentarvorlagen

Um dies zu einem funktionalen Code zu machen, müssen Sie die von WordPress bereitgestellten Vorlagen-Tags verwenden.

Vorlagen-Tag Beschreibung
<?php comment_ID(); ?> die ID eines Kommentars
<?php comment_author(); ?> der Autor eines Kommentars
<?php comment_author_link(); ?> der Autor eines Kommentars, der mit einem Link zu seiner Website versehen ist, falls er einen angegeben hat
<?php comment_type(); ?> die Art des Kommentars; Pingback, Trackback oder ein Kommentar
<?php comment_text(); ?> der eigentliche Kommentar
<?php comment_date(); ?> das Datum, an dem es veröffentlicht wurde
<?php comment_time(); ?> die Zeit, als es gepostet wurde

Das Endergebnis

Wenn Sie dies in comment.php einfügen, erhalten Sie eine geordnete Liste mit den Kommentaren und den erforderlichen Informationen oder eine Meldung, dass keine Kommentare vorhanden sind.


4. Das Kommentarformular

Folgen Sie mir immer noch? Gut! Wir sind fast da. Wir müssen nur das Kommentarformular verarbeiten... Okay, vielleicht habe ich gelogen, weil ich fast da war. Das Kommentarformular ist tatsächlich einer der schwierigeren Teile der gesamten Skin-Datei comments.php.

Sie werden mit mehreren bedingten Anweisungen bombardiert (ist eine Anmeldung erforderlich, sind Sie angemeldet, ...). In diesem Teil haben die meisten Start-Skinner die größten Probleme: Durch falsches Platzieren von Formularelementen kann verhindert werden, dass das Formular überhaupt funktioniert, ohne dass ein bestimmter PHP-Fehler auftritt.

Um Ihnen einen Einblick in die bedingten Anweisungen zu geben, die im Kommentarformular enthalten sind, werde ich zuerst diese Anweisungen erläutern und später den HTML-Code einfügen, um zu erklären, warum er dort sein sollte, wo er ist.

Übersicht über bedingte Anweisungen

Die erste bedingte Anweisung, auf die Sie stoßen, ist <?php if(comments_open()) : ?>. Dies prüft grundsätzlich, ob die Kommentare offen sind. Wenn die Kommentare geschlossen sind, können Sie natürlich keinen Kommentar veröffentlichen und das Kommentarformular wird nicht benötigt. Sie können die Nachricht einfügen, die angezeigt werden soll, wenn die Kommentare zwischen dem letzten <?php else : ?> Und geschlossen sind<?php endif; ?>.

Die zweite bedingte Anweisung (<?php if (get_option('comment_registration') && !$user_ID) : ?>) Überprüft, ob Sie registriert sein müssen, um einen Kommentar zu veröffentlichen, und ob Sie angemeldet sind. Wenn die bedingte Anweisung erfüllt ist, sollte das Skript einen Link zu einem Ort anzeigen, an dem sich Benutzer anmelden können. Wenn keine Registrierung erforderlich ist oder Sie bereits angemeldet sind, fährt das Skript mit dem else Teil fort und zeigt das Formular an.

Unsere letzte bedingte Erklärung prüft dann, ob Sie angemeldet sind oder nicht. Wenn Sie bereits angemeldet sind, ist es natürlich sinnlos, Ihren Namen, Ihre E-Mail-Adresse und Ihre Website erneut einzugeben.

Formular einfügen

Herzlichen Glückwunsch, wir haben alle bedingten Anweisungen in der Datei comments.php durchgearbeitet. Jetzt müssen Sie nur noch das Formular hinzufügen.

Das erste, was ich hören kann, ist: Wo zum Teufel wird diese Form anfangen? Nun, Sie müssen nur dem gesunden Menschenverstand folgen. Die zweite bedingte Anweisung prüft, ob Sie angemeldet sein müssen oder nicht. Daher müssen Sie erst nach dieser Anweisung ein Formular anzeigen. Somit befindet sich das gesamte Formular innerhalb dieser bedingten Anweisung.

Ich habe auch den Link zur Anmeldeseite eingefügt, so wie ich ihn in der Standard comments.php gefunden habe. Wie ich bereits sagte, prüft die letzte bedingte Anweisung, ob Sie angemeldet sind oder nicht. Offensichtlich werden die Eingabefelder für Name, E-Mail und Website nur angezeigt, wenn Sie nicht angemeldet sind. Lass sie uns da reinwerfen!

In Ordung! Wir sind fast da! Wir müssen nur einige einfache Codezeilen hinzufügen, z. B. einen Textbereich und eine Schaltfläche zum Senden. Diese folgen nach der letzten bedingten Anweisung, da es für diese Elemente irrelevant ist, ob Sie angemeldet sind oder nicht.

Dieser Code sollte ziemlich selbsterklärend sein. Ein Textfeld für den Kommentar, eine Schaltfläche zum Senden, ein verstecktes Eingabefeld mit der zukünftigen ID des Kommentars und einem PHP-Snippet (<?php do_action('comment_form', $post->ID); ?>) WordPress erfordert, dass das Kommentarformular funktioniert.

Voila! Das war's Leute! Sie haben jetzt Ihre vollständig fertige Datei comments.php. Zeigen Sie diese Datei an, um den gesamten erforderlichen PHP- und HTML-Code abzurufen. Sie sollten am Ende damit fertig sein (ich habe einfach die kommentar.php-Datei des Standard-Skins durch unsere ersetzt und ein kleines Styling hinzugefügt.)

Comments previewComments previewComments preview

5. Einige kleine Tricks

Natürlich haben Sie jetzt nur eine grundlegende Datei "comments.php". Es gibt Unmengen von Dingen, die Sie tun können, um es weiter zu verbessern. Ich werde einige kleine Tipps und Tricks auflisten, die Ihnen auf Ihrem Weg helfen sollen.

Gravatars

Ab WordPress 2.5 gibt es ein benutzerdefiniertes WordPress-Template-Tag zum Einbetten von Gravataren. Es zieht den Gravatar aus der E-Mail, die der Besucher eingegeben hat. Der Code dafür ist sehr einfach.

Sie können $author_email durch die raffinierte get_comment_author_email() ersetzen. Funktion: $size ist die Höhe (und Breite) des Avatars und $default_avatar ist ein Link zum Standard-Avatar-Bild (wird angezeigt, wenn der Kommentator kein Gravatar hat).

Fügen Sie diesen Code in die foreach-Schleife ein, in der die Kommentare angezeigt werden. Die Ausgabe ist ein Bild mit den Klassen avatar und avatar- $size (wobei $size die von Ihnen angegebene Größe ist). Mit einigen geringfügigen CSS-Bearbeitungen könnten Sie Folgendes erreichen:

Comment GravatarsComment GravatarsComment Gravatars

Kommentarnummern

Ich habe absichtlich Überschriften in der später erstellten Datei comment.php weggelassen, da ich glaubte, dass sie in einem Lernprozess, der so schwierig wie er ist, zu überschüssigem Code führen würden. Natürlich vergesse ich sie nicht.

Normalerweise haben Leute eine Überschrift, die etwas Ähnliches wie "3 Kommentare bisher" anzeigt. Dies ist dank der von WordPress angebotenen Vorlagen-Tags sehr einfach zu erreichen.

Es ist ziemlich selbsterklärend: $zero_comments ist der Text, der angezeigt wird, wenn keine Kommentare vorhanden sind, $one_comment, wenn ein Kommentar vorhanden ist, und $more_comments, wenn mehrere Kommentare vorhanden sind. Ein Beispiel aus dem wirklichen Leben wäre wie folgt:

Ich habe % für mehrere Kommentare verwendet, da die Funktion comment_number dann % durch die Anzahl der Kommentare ersetzt (2, 3, …).

Wenn Sie diese in unserer Datei "comments.php" verwenden, erhalten Sie am Ende Folgendes:

Comment numbersComment numbersComment numbers

Um einen Link zum Kommentarteil anzuzeigen (wobei auch die Anzahl der Kommentare angezeigt wird), verwenden Sie einfach den folgenden Code.

Die ersten 3 Parameter in dieser Funktion sind dieselben wie in der obigen Funktion comments_number. $css_class ist offensichtlich die CSS-Klasse, die Sie dem <a>-Tag geben, und $comment_closed ist der Text, der angezeigt werden soll, wenn die Kommentare geschlossen werden. Wenn Sie dies auf ein Thema anwenden, können Sie es auf diese Weise verwenden.

Dies würde Ihnen dann einen Link mit dem Klassen comments-link geben

Kommentare bearbeiten

Manchmal möchten Sie sofort einen Kommentar bearbeiten. Glücklicherweise können Sie mit der Funktion edit_comment_link einfach zur richtigen Seite gehen, um sie zu bearbeiten, anstatt zu Ihrem Admin-Bereich navigieren zu müssen, um diesen Kommentar endgültig zu erreichen. Die Verwendung ist als solche:

Sie müssen dies in die foreach-Kommentarschleife einfügen. Die Parameter liegen auf der Hand: $link_text ist der Ankertext für den Bearbeitungslink, $before_link und $after_link sind der Text oder Code, der vor oder nach dem Link angezeigt werden soll.

Dies macht es wirklich einfach, einen Kommentar zu ändern. Sie können einfach einen kleinen Link "Bearbeiten" zu Ihren Kommentar-Metainformationen hinzufügen (nur für den Administrator sichtbar). So könnte es aussehen:

Comment Edit LinkComment Edit LinkComment Edit Link

Wechselnde Farben für Kommentare

Möglicherweise möchten Sie für Ihre Kommentare abwechselnde Zeilenfarben, um eine klarere Trennung zu erzielen. Dies ist relativ einfach. Fügen Sie zunächst den folgenden Code oben auf der Seite hinzu:

Fügen Sie dann (erneut) Folgendes in die foreach-Schleife ein. Sie können einfach <li id="comment-<?php comment_ID(); ?>"> Durch Folgendes ersetzen:

Dadurch erhält jeder zweite Kommentar die Klasse alt, sodass das Erscheinungsbild über CSS geändert werden kann.

Ich habe beschlossen, eine Funktion dafür zu erstellen, um weniger Unordnung in Ihrer eigentlichen Themendatei zu haben. Sie können die Funktionsdefinition in Ihre Datei functions.php einfügen, wenn Sie möchten, aber für mich ist es sinnvoller, sie oben auf Ihrer Seite zu haben.

Abwechselnde Zeilen erleichtern die Unterscheidung verschiedener Kommentare. Einmal implementiert, haben Sie möglicherweise Folgendes:

alternate color commentsalternate color commentsalternate color comments

Anzeigen der zulässigen Tags

Verwenden Sie einfach diesen kleinen Ausschnitt, um den Code anzuzeigen, den Besucher in ihren Kommentaren verwenden dürfen.

Dann erhalten Sie einfach eine Liste der Tags, die in Ihren Kommentaren zulässig sind, wie folgt:

allowed tagsallowed tagsallowed tags

Kommentare RSS-Link

Um einen Link zum RSS-Feed für die Kommentare eines bestimmten Beitrags zu erhalten, fügen Sie einfach den folgenden Code an der gewünschten Stelle in Ihre Datei "comments.php" ein.

Ersetzen Sie dann einfach $link_test durch den Ankertext für den RSS-Link.

Dies kann nützlich sein, wenn Sie Ihren Besuchern die Möglichkeit geben möchten, den Kommentar-Feed für einen bestimmten Artikel oder Blog-Beitrag zu abonnieren. Sie könnten es so implementieren:

comments rss linkcomments rss linkcomments rss link

6. Abschluss

Ich hoffe, Ihnen hat dieser kleine Artikel über das Enthäuten Ihrer WordPress-Datei kommentars.php gefallen. Den vollständigen Code erhalten Sie hier mit den darin gezeigten Tricks:

  • Gravatars,
  • alternative Zeilenfarben,
  • Link bearbeiten,
  • Kommentare RSS-Link.

Offensichtlich ist der Kommentar-Link nicht enthalten, da dieser innerhalb der Schleife verwendet werden muss.

Viel Glück bei Ihren WordPress-Skinning-Abenteuern!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.