PHP, Themes, Tipps, WordPress

Ein Gästebuch im WordPress TwentyTen Theme

WordPress besitzt die Kommentarfunktion, nichts anderes ist ein Gästebuch und ich möchte kurz am Beispiel des Standard-Theme TwentyTen zeigen, wie leicht und ohne Plugins ein Gästebuch eingerichtet ist. Ich erhoffe mir, dass damit die vielen Mails zu dem Thema weg bleiben und jeder eine einfache, funktionierende und saubere Lösung erstellen kann.
Weiterlesen

Standard
Plugin, WordPress

WP – Gästebuch Plugin Themes

Seit einiger Zeit gibt es die neue Version meines simplen Gästebuchs, hier geht es zum Artikel „WP – Gästebuch [ WP-Guestbook ] (Plugin)“, wo einige gewünschten Features integriert wurden. Ich habe das Plugin recht flexibel aufgebaut, deshalb sind es auch zwei Plugins geworden, die eigentlich die gleiche Aufgabe übernehmen. Allerdings kann so jeder nach seinen Wünschen die jeweilige Pluginversion aktivieren und konfigurieren.
Nichtdestotrotz muss die Funktion an die jeweiligen Themes angepasst werden. Für etwas ältere Version hatte ich in meinem Blog schon einige Themes hinterlegt, die findet ihr weiterhin unter diesem Link: „WP – Gästebuch-Template für verschiedene Themes„. Auch diese Themes können weiterhin genutzt werden, jedoch unterstützen sie nicht das Plugin „WP-Guestbook-Paged“.
Insofern ich für Leser Templates anpasse werde ich diese also im hier auf der Seite ablegen, viel Spaß damit.

fSpring

Screenshot Gästebuch fSpring
Gästebuch fSpring

Link zum Theme: fSpring von Fredrik Fahlstad

Ersetze die hier vorhandenen Dateien mit den Originalen des Plugins.
Die üblichen Einstellungen können natürlich weiterhin angepasst werden. Mehr dazu gibt es auf dem Beitrag zum Gästebuch-Plugin.

Download:

Download als Zip-Datei: wp-guestbook2_fspring.zip – 13 KByte

Blix

Screenshot Gästebuch Blix
Gästebuch Blix

Link zum Theme: Blix von Sebastian Schmieg

Ersetze die hier vorhandenen Dateien mit den Originalen des Plugins.
Bei der Verwendung von WP-Paged-Guestbook habe ich den Counter des Themes mit dem Counter des Guestbook-Plugins ersetzt, damit die Darstellung im DESC-Mode ermöglicht wird. Sollte ein frei definierbares DIV für den Counter erwünscht werden, dann muss ab Zeile 88 der wp-paged-geustbook.php im Theme-Ordner geändert werden. Erläuterungen dazu liegen im File.

Download:

Download als Zip-Datei: wp-guestbook2_blix.zip – 14 KByte

Pool

Screenshot Gästebuch Pool
Gästebuch Pool

Link zum Theme: Pool von Borja Fernandez

Ersetze die hier vorhandenen Dateien mit den Originalen des Plugins.
Die üblichen Einstellungen können natürlich weiterhin angepasst werden. Mehr dazu gibt es auf dem Beitrag zum Gästebuch-Plugin.

Download:

Download als Zip-Datei: wp-guestbook2_pool.zip – 13 KByte

unsleepable

Screenshot Gästebuch unsleepable
Gästebuch unsleepable

Link zum Theme: unsleepable von Ben Gray

Ersetze die hier vorhandenen Dateien mit den Originalen des Plugins.
Die üblichen Einstellungen können natürlich weiterhin angepasst werden. Mehr dazu gibt es auf dem Beitrag zum Gästebuch-Plugin.

Download:

Download als Zip-Datei: wp-guestbook2_unsleepable.zip – 17 KByte

Red Train 1.0

Screenshot Gästebuch Red Train
Gästebuch Red Train

Link zum Theme: Red Train von Vladimir Simovic

Ersetze die hier vorhandenen Dateien mit den Originalen des Plugins.
Die üblichen Einstellungen können natürlich weiterhin angepasst werden. Mehr dazu gibt es auf dem Beitrag zum Gästebuch-Plugin.

Download:

Download als Zip-Datei: wp-guestbook2_red-train-1_0.zip – 14 KByte Weiterlesen

Standard
Plugin, WordPress

WP – Gästebuch [ WP-Guestbook ] (Plugin)

Seit dem ich mich einmal mit dem Thema WordPress beschäftigt habe, bin ich begeistert von der Vielzahl an Möglichkeiten, die dieses kleine CMS an seine Bedürfnisse anzupassen. In der Vergangenheit habe ich hier (Erstellen eines Gästebuchs mit Hilfe von WordPress) eine Möglichkeit veröffentlicht, bei der ich erläutere, wie ich auf einem anderen Blog, wo WP als CMS zum Einsatz kommt, ein Gästebuch mit Hilfe der Kommentarfunktion von WP einrichte. Dieser Artikel ist der meist frequentierte Beitrag auf diesem Blog.
Nun hat die damalige Implementierung des Gästebuchs einen kleinen aber entscheidenden Nachteil, bei Updates der Core-Dateien von WP muss die Funktion des Gästebuches jedesmal wieder neu eingebunden werden, da ich Veränderungen in der comments-functions.php vorgenommen habe.
Nach unzähligen Anfragen und Hilfen habe ich mich deshalb entschlossen, das Gästebuch in ein Plugin auszulagern. So werden die Originaldateien von WP nicht verändert und Updates sind ohne Probleme möglich.
Trotzdem bleibt noch immer Anpassungsarbeit für die Nutzer dieses Plugins, denn ich liefere derzeit nur Templates für das deutsche Theme „default_de“ mit und das englische „default“-Theme. Im folgenden werde ich aber versuchen, einige Hinweise zu geben, so dass es möglich sein sollte, ein Template für das jeweilige Theme anzufertigen.

Anforderungen:

Das Gästebuch funktioniert unter WP 1.5* und WP2.* und wurde bisher unter WP 1.5.2(english) und WP 2.0.2 getestet.

Screenshot:

Screenshot GB unter WP2.*

Installation:

  1. Sichere deine Datenbank und deine Dateien ! Keine Garantie auf zerstörte Daten !
  2. Lokal entpacken und gegebenenfalls den Pfad des Theme-Ordners in der guestbook.php im Plugin-Ordner (wp-content/plugins/wp-guestbook) anpassen.
  3. Bei Verwendung von WP-Paged-Guestbook das Config-File paged-guestbook-config.php im Plugin-Ordner (wp-content/plugins/wp-guestbook) anpassen.
  4. Upload in …
    • deineseite.de/wp-content/themes/DEINTHEME/wp-guestbook.php
    • deineseite.de/wp-content/themes/DEINTHEME/wp-guestbook_page.php
    • deineseite.de/wp-content/themes/DEINTHEME/wp-guestbook_single.php
    • deineseite.de/wp-content/themes/DEINTHEME/wp-paged-guestbook.php
    • deineseite.de/wp-content/plugins/wp-guestbook/guestbook.php
    • deineseite.de/wp-content/plugins/wp-guestbook/paged-guestbook.php
    • deineseite.de/wp-content/plugins/wp-guestbook/paged-guestbook-config.php
  5. Aktiviere das Plugin in der Admin-Oberfläche von WP.
  6. Screenshot Gästebuch anlegenUnter „Schreiben“ –> „Seite schreiben“ …
    • erstellts du eine neue Seite mit dem Namen für das Gästebuch, z.B. „Gästebuch“
    • dann wählst du das gewünschte Template aus, „Template der Seite“ wähle „WP-Guestbook Page“ für die Darstellung mit Sidebar oder „WP-Guestbook Single“ für die Darstellung ohne Sidebar, nur das Gästebuch

Infos:

  • Sollte es Probleme beim Auffinden des Templates geben, so ändert in guestbook.php (/wp-content/plugins/) den Pfad in Zeile 34:

    
    $include = ABSPATH.'wp-content/themes/default_de/wp-paged-guestbook.php';
    
  • Wenn ihr wollt, dass der jeweils letzte Beitrag als erster zu lesen ist, dann ändert in Zeile 24 und 28 in der guestbook.php im Ordner /wp-content/plugins/wp-guestbook/ nach:

    
    ORDER BY comment_date"
    

    und in folgenden Code ändern.

    
    ORDER BY comment_date DESC"
    
  • Das Gästebuch arbeitet mit einer Liste <ul>, wenn ihr es in <ol> ändert werden die Enträge nummeriert.
    Für den gleichen Effekt habe ich einen Zähler integriert, der nur auskommentiert werden muss, in Zeile 87 der wp-guestbook.php im Theme-Ordner. Der Vorteil dabei ist, dass die laufende Nummer in einem div dargestellt wird, den ihr frei über die class comment-number mit CSS gestallten könnt.

    
    <div class="comment-number"><?php echo $comment_number; ?></div>
    

    Beispiel zur Formatierung des Counter:

    
    div.comment-number {
    float: right;
    text-align: right;
    font-size: 2.5em;
    font-weight: bold;
    font-family: 'Times New Roman', Times, serif;
    padding: 8px 0;
    color: #556B2F;
    }
    
  • Wer auf die XHTML-Befehle hinweisen möchte, entkommentiert Zeile 60:

    
    <p><small>
     <strong>XHTML:</strong> You can use these tags: <?php echo allowed_tags(); ?&gt;
    </small></p>
    

Paged Guestbook

Viele Leser meiner Seite wünschten sich eine konfigurierbare Darstellung, so dass nur eine bestimmte Anzahl der Einträge gezeigt wird. Diese Funktion ist so in WP nicht vorhanden, deshalb habe ich mit Hilfe des Plugns „Paged Comments“ von Keyvan Minoukadeh diese Funktion integriert.
Zusätzlich gibt es nun, wie auch von vielen Usern erwünscht, eine gefüllte Startseite, wählbare Reihenfolge der Einträge und die Funktion, dass das Plugin auch bei Verwendung von Permalinks funktioniert. Ebenfalls habe ich die Templates in den Theme-Ordner ausgelagert, dadurch muss allerdings machmal ein wenig in den Code der beiden Plugins eingegriffen werden.

Demo:

Mittlerweile gibt es eine Reihe von Siten, die das Plugin einsetzen (siehe Kommentare), ansonsten sollte der Screenshot das Gästebuch verdeutlichen.
Screenshot GB2 unter WP2.*

Wenn ihr das zweite Plugin „WP-Guestbook-Paged“ aktiviert, werden diese Funktionen genutzt. Im Plugin-Ordner liegt ebenfalls eine Konfigurationsdatei (wp-content/plugins/wp-guestbook/paged-guestbook-config.php), in der ihr eure Einstellungen vornehmen könnt. Nähere Infos dazu liegen den Variablen bei und sollten sich selbst erklären.

Erläuterungen zu Paged Guestbook – Config

Wenn das Plugin Paged Guestbook aktiviert ist, dann müssen alle Konfigurationen in der Datei wp-content/plugins/wp-guestbook/paged-guestbook-config.php vorgenommen werden. Ich habe absichtlich auf eine Einstellungsmöglichkeit im Admin-menu verzichtet, da das Menu in WP dadurch nur überladen würde und die Einstellungen eigentlich nur einmal vorgenommen werden.
Es besteht die Möglichkeit folgende Option zu verändern:

  1. Link zum wp-paged-guestbook.php im Theme-Order – hier kann, falls das Theme nicht richtig erkannt wird, ein direkter Link zur Datei hinterlegt werden
    Beispiel:
    $paged_guestbookcomments->template_path = 'wp-content/themes/default/wp-paged-guestbook.php';
  2. Einträge pro Seite – Anzahl der Einträge, bis ein Seitenumbruch erstellt wird
  3. Beispiel:
    $paged_guestbookcomments->per_page = 10;

  4. Eintragsreihenfolge – Darstellung der Reihenfolge, wenn der Seitenumruch aktiv ist (dieser ist erst aktiv, wenn genügend Einträge dafür vorhanden sind)
    Beispiel 1: Erster Eintrag zu erst darstellen, 1,2,3,…x
    $paged_guestbookcomments->ordering = 'ASC';
    Beispiel 2: Letzter Eintrag zu erst darstellen, x,….3,2,1
    $paged_guestbookcomments->ordering = 'DESC';
  5. Letzte Seite auffüllen – ja oder nein
    Beispiel 1:
    $paged_guestbookcomments->fill_last_page = true;
    Beispiel 1:
    $paged_guestbookcomments->fill_last_page = false;
  6. Seitenumfang – Anzahl der Seitennummern die aktuell angezeigt werden, < < 4 5 (6) 7 8 >>
    Beispiel:
    $paged_guestbookcomments->page_range = 11;
  7. ‚Alle anzeigen‘ Reihenfolge bzw. bevor es nicht genügend Einträge für Sietenumbruch gibt – Wenn der User ‚Alle anzeigen‘ wählt, so wird hier die Reihenfolge des Listings vorgegeben
    Beispiel 1: Erster Eintrag zu erst, 1,2,3,…x
    $paged_guestbookcomments->show_all_ordering = 'ASC';
    Beispiel 2: Letzter eintrag zu erst, x,….3,2,1
    $paged_guestbookcomments->show_all_ordering = 'DESC';
  8. Standard Seite – Die erste Seite, die beim Aufruf des Gaestebuchs geladen werden soll
    Beispiel 1: auto, abhängig vom der Eintragsreihenfolge
    $paged_guestbookcomments->default_page = 'auto';
    Beispiel 2: first
    $paged_guestbookcomments->default_page = 'first';
    Beispiel 1: last
    $paged_guestbookcomments->default_page = 'last';
  9. Text für title „Older entries“
    Beispiel:
    $paged_guestbookcomments->older = 'Ältere Einträge';
  10. Text für title „Newer entries“
    Beispiel:
    $paged_guestbookcomments->newer = 'Neuere Einträge';
  11. Text für „Alle anzeigen“
    Beispiel:
    $paged_guestbookcomments->show_all = 'Alle anzeigen';

Bei Problemen mit der Darstellung muss auch hier ein neues Template für die Seite oder auch für die Kommentarfunktion des Gästebuchs erstellt werden.
Mehr Infos dazu im folgenden Abschnitt.

Templates erstellen

Nicht alle WP-User benutzen das default_de-Theme. Wer ein anderes Theme benutzt kann sich gern an mich wenden und ich versuche zu helfen oder entnimmt den folgenden Hinweisen den Code für die Implementierung.

Info:

Sollte ich zu Themen schon die notwendigen Dateien erarbeitet haben, so sind sie auf Gästebuch Plugin Themes zu finden.

Prinzipiell wird das Gästebuch über folgenden Code aufgerufen:


<?php if (function_exists('paged_guestbookcomments_template')) paged_guestbookcomments_template(); 
          else
          if (function_exists('guestbook_template')) guestbook_template();
          else 
          comments_template(); 
?>

In jeden Theme gibt es eine PHP-Seite, welche die Darstelleung der Beiträge übernimmt, oft ist es die index.php, page.php oder die single.php. Kopiert euch die Seite unter einem anderen Namen, z.B. „wp-guestbook_page.php“.
In dieser Datei müsst ihr nun das Gästebuch über den Code aufrufen, s.o. .
Vergebt einen Template Namen, damit ihr die Seite aus eurem Theme dann auch in eurer WP-Oberfläche findet. Das macht ihr, in dem ihr an den Start der Seite folgende Zeilen unterbringt.


<?php
/*
Template Name: WP-Guestbook Page
Theme: default_de
*/
?>

Außerdem müsst ihr das Template des Gästebuchs aufrufen. Sucht dazu den Aufruf des Kommentartemplates – comments_template();
und ändert es in:


<?php if (function_exists('paged_guestbookcomments_template')) paged_guestbookcomments_template(); 
          else
          if (function_exists('guestbook_template')) guestbook_template();
          else 
          comments_template(); 
?>

Die Seite speichern und in euren Theme-Ordner uploaden. Nun sollte das Template beim Erstellen der Seite „Gästebuch“ unter „Template der Seite“ zu finden sein. Auswählen und ansehen. Gegebenenfalls müsst ihr an der PHP-Seite für die Darstellung der Gästebucheinträge Veränderungen vornehmen, damit es entsprechend euren Vorstellungen aussieht.
Dazu nutzt ihr die comments.php eures Themes und speichert sie unter dem Namen wp-guestbook.php und legt sie ebenfalls im Theme-Ordner ab. Zusätzlich solltet ihr, bei Bedarf die funktion des Counters einbinden. Am besten ist es, wenn ihr eure neue wp-guestbook.php mit der vorhanden, die ich mitliefere auf basis von default_de, vergleicht.

Counterfunktion


<h3 id="comments"><?php comments_number( ...
<?php $comment_number=1; ?>
...
<div class="comment-number"><?php echo $comment_number; ?></div>
<cite><?php comment_author_link() ?></cite>
...
	<?php $comment_number++; ?>
<?php endforeach; /* end for each comment */ ?

Wenn ihr das zweite Plugin WP-Guestbook-Paged ebenfalls nutzt, so arbeitet die wp-paged-guestbook.php als Template für die Darstellung der Einträge. Hier müsst ohr ebenfalls die comments.php nutzen und daraus eine neue wp-paged-guestbook.php erstellen. Vergleicht den Code und ergänzt die Zeilen aus der original wp-paged-guestbook.php.

Als erstes den Pfad anzupassen:


<?php
	if ('wp-paged-guestbook.php' == basename($_SERVER['SCRIPT_FILENAME']))
...

und vor und nach dem Aufruf der Einträge, also vor und nach der ol- oder ul-Liste folgender Code einzubinden. Der stellt die Navigation der Seiten dar.


<!-- START PLUGIN WP PAGED GUESTBOOK -->
<!-- WP-Paged-Guestbook page numbers -->
<?php if ($paged_guestbookcomments->pager->num_pages() > 1): ?>
<p class="comment-page-numbers">
 <?php _e("Pages:"); ?> <?php paged_guestbookcomments_print_pages(); ?>
</p>
<?php endif; ?>
<!-- End WP-Paged-Guestbook page numbers -->

Nun muss noch die Möglichkeit des Counters eingefügt werden. Nach dem List-Element – li:


<!-- Commentnumber with class -->
<div class="comment-number">
 <?php echo $comment_number; $comment_number += $comment_delta; ?>
</div>

Als letztes muss der Code für das Eintragen eines neuen Gästebucheintrags noch nach oben geholt werden, da der in der comments.php unter den Kommentaren erscheint. Sucht dazu diesen Code, wenn das Theme einen ähnlichen Aufbau hat. Alles ausschneiden und über die Ausgabe der Einträge einfügen.


<?php if ('open' == $post->comment_status) : ?>
...
<form action="<?php echo get_option('siteurl'); ?>
  /wp-comments-post.php" method="post" id="commentform">
...
</form>

<?php endif; // If registration required and not logged in ?>

<?php endif; // if you delete this the sky will fall on your head ?>

Info:

Sollte ich zu Themen schon die notwendigen Dateien erarbeitet haben, so sind sie auf Gästebuch Plugin Themes zu finden.

Download:



Ist die Arbeit nicht 1 Euro wert?
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.
Möchtest du mehr oder anders spenden, so besuche meine Wunschliste.

Download als zip-Datei: wp-guestbook.zip – 6 KByte


Download V2 (incl. Seitenumbruch und Counter):
Download als Zip-Datei: wp-guestbook2.zip – 20 KByte


Download V2 englisch (Theme: default) (incl. Seitenumbruch und Counter):
Download als Zip-Datei: wp-guestbook2_english.zip – 15 KByte

Standard
Tipps, WordPress

WP – Gästebuch integrieren mit WP 2.0 (WordPress 2.0 Guestbook)

Im August diesen Jahres beschrieb ich das Erstellen eines Gästebuchs mit Hilfe von WordPress (hier gibt es mehr Hintergrundinfos) in einem Blog. Der Artikel wurde bisher unzählige male gelesen und ebenso viele Anfragen habe ich per Mail und Kommentar bekommen.
Nun ist seit einigen Tagen WordPress 2.0 da und ich habe einen meiner Blogs auf WP 2.0 aktualisiert um alle meine Artikel und Plugins für WordPress 2.0 zu testen. Mit dem Gästebuch hatte ich da einige Probleme, da ich hier das Ausführen von php in den Seiten benötige. Leider war dies mit dem bisher verwendeten Plugin PHP-Exec nicht möglich.
Aber die WP-Community ist groß und ich habe durch Sören Weber schnell Hilfe erhalten, der mit seinem Plugin Exec-PHP für Abhilfe gesorgt hat.
Nun denn, das Gästebuch läuft nun auch unter WordPress 2.0. Viel Spaß damit.

Update:

Ab jetzt gibt es ein Plugin, welches die Arbeit erspart – siehe „WP Guestbook plugin„.

Achtung:

Dadurch werden die Standard-Datein (Core) von WP verändert, in diesem Fall die comment-functions.php. Duch diesen Eingriff kann nicht so einfach ein Update von WP duchgeführt werden. Fertigt in jedem Fall vorher eine Kopie eures Blogs und der Datenbank an.

Screenshot:
Screenshot Gästebuch unter WP 2.0

Anforderungen:

Das Gästebuch funktioniert unter WP 2.0 und benötigt ein PHP-Plugin. Hier empfehle ich Exec-PHP.
Aufpassen – zum Teil gibt es Probleme mit dem WYSIWYG-Editor unter WP 2.0 und der php-Funktion.

Update:

Für alle die jenigen, die ohne PHP-Plugin auskommen wollen bzw. wenig mit PHP zu tun haben, gibt es nun zwei Templates. Mit diesen Templates fällt der Code in der Seite weg. Erstellt einfach eine neue Seite mit eurem Namen, z.B. Gästebuch, und wählt als „Template der Seite“ das Guestbook Single oder Guestbook Page aus. Bei Single wird nur das Gästebuch erzeugt, ohne Sidebar und bei Page mit Sidebar. Die Templates stimmen natürlich nur für das default-Theme von WP und müssen in das Theme eures Blogs kopiert werden (/wp-content/themes/default_de/).

Installation:

Hinweis: Die beiden Dateien wurden von mir auf Basis der deutschen WP 2.0-Version von Kylaloo erstellt. Dort ist das Standardthema default_de benannt. Auf dieses Thema verweist auch die guestbook_function.

  • Ladet euch die beiden Dateien und kopiert sie in euren Webspace mit Hilfe von FTP.
  • Die Datei guestbook.phps in guestbook.php umbenennen und in euren Theme-Ordner kopieren. (wp-content/themes/default_de/)
    Diese Datei ist das Template für das Gästebuch und muss gegebenenfalls an eurer Layout angepasst werden.
  • Die zweite Datei comment-functions.phps in comment-functions.php umbenennen und die Originaldatei im Ordner wp-includes deines Blogs ersetzen. In der Datei ist die Funktion enthalten.
  • Nun erstellt in eurem WP-Blog eine neue Seite und vergebt den Namen Gästebuch (o.ä.).
  • Als Inhalt ruft ihr die Funktion guestbook_template mit Hilfe von php auf.
    Wenn ihr das besagte php-Plugin nutzt, dann sieht der Code folgendermaßen aus.

     

    
    <?php guestbook_template(); ?>
    
  • Das wars, ihr solltet nun eine neue Seite haben, die den vergebenen Namen hat und eine Gästebuch beinhaltet. Denkt daran, dass ihr die Kommentarfunktion von WP frei geben müsst, denn sonst können auch keine Einträge im Gästebuch vorgenommen werden.

Infos:

Im weiteren wollte ich, dass der jeweils letzte Beitrag als erster zu lesen ist. Dazu muss die comment-functions.php ein wenig verändert werden. Bei der Version, die ihr im folgenden downloaden könnt, ist das ganze schon passiert. Ansonsten müsst ihr folgen Code suchen (Zeile 21 und 17)


ORDER BY comment_date

und in folgenden ändern.


ORDER BY comment_date DESC

Download:

Download als php-DateiDownload als php-Datei: guestbook.phps – 4KByte

Download als php-DateiDownload als php-Datei: comment-functions.phps – 30KByte

Download als php-DateiDownload als php-Datei: guestbook-page.phps – 1KByte

Download als php-DateiDownload als php-Datei: guestbook-single.phps – 2KByte

Standard
Tipps, WordPress

WP – Gästebuch integrieren (WordPress Guestbook)

Um im WordPress ein Gästebuch zu integrieren kann man einerseits ein Plugin nutzen oder man nutzt die vielen Möglichkeiten von WordPress. WP bringt eigentlich schon genügend Möglichkeiten dafür mit. Allerdings kommt man nicht ganz ohne ein Plugin aus, denn man muss php-Code in die Seite einbinden, es sei denn ihr erstellt euch ein passendes Template.
En geeignetes Plugin für den php-import findet ihr bei Priyadi’s Place.

An sich kann man dann schon mit der Kommentarfunktion von WP ein eigenes Gästebuch erzeugen. Folgender Code ist einfach in eine neue Seite mit dem Namen „Gästebuch“ zu schreiben.


<?php comments_template(); ?>

Nun habt ihr ein Gästebuch, welches sich auch automatisch an euer Design anpasst, da das Stylesheet ja das gleiche ist, wie bei euren anderen Kommentaren auf den Beiträgen.

Update:

Ab jetzt gibt es ein Plugin, welches die Arbeit erspart – siehe „WP Guestbook plugin„.

Verbesserte Variante:

Allerdings ist es bei Gästebüchern üblich, dass die Eintragsfunktion am Anfang steht. Außerdem stört es etwas, dass man zu einem ‚Kommentar‘ aufgefordert wird und nicht zu einem ‚Eintrag‘. Um dies zu ändern, muss man ein neues Template hinterlegen. Keine Angst, auch das ist mit WP sehr schnell erledigt. In meinem Fall habe ich einfach die comments.php genutzt und daraus eine neue geustbook.php geschrieben. Die kann sich jeder schnell anpassen. Die Texte habe ich ein wenig geändert, so dass sie zum Thema Gästebuch passen.

Anforderungen:

Das Gästebuch funktioniert unter WP 1.5* und benötigt ein PHP-Plugin.
Die neue Version für WordPress 2.0 ist hier zu finden.

Die Datei ist hier zum Download verfügbar. Diese Datei müsst ihr in guestbook.php umbenennen und in euren Theme-Ordner uploaden, beim Standardthema: /wp-content/themes/default/.
Download als php-Datei
Download als php-Datei: guestbook.phps – 4KByte

Update:

Da ich mittlerweile einigen WP-Usern bei der Erstellung des Gästebuches geholfen habe und das Design natürlich immer vom Theme abhängt, werde ich die fertigen guestbook.php-Dateien zu den einzelnen Themes hier hinterlegen. Ich hoffe, dass dadurch die Nutzung eines Gästebuches etwas erleichtert wird.

Damit man das Gästebuch-Template nun auch ohne weiteres benutzen kann, ist eine kleine Erweiterung in der comment-functions.php im Ordner wp-includes notwendig. Das Template wird sonst nicht als solches erkannt. Dazu habe ich ein wenig die Datei erweitert.

Achtung:

Dadurch werden die Standard-Datein (Core) von WP verändert, in diesem Fall die comment-functions.php. Duch diesen Eingriff kann nicht so einfach ein Update von WP duchgeführt werden. Mehr Hinweise zu den Veränderungen (Hacks) in den Standard-Dateien findet ihr in dem Artikel von Arno Simon. Fertigt in jedem Fall vorher eine Kopie eures Blogs und der Datenbank an.


// Start: Erweitert für Gästebuch Template
function guestbook_template( $file = '/guestbook.php' ) {
	global $wp_query, $withcomments, $post, $wpdb, $id, $comment, $user_login,
	 $user_ID, $user_identity;

	if ( is_single() || is_page() || $withcomments ) :
		$req = get_settings('require_name_email');
		$comment_author = isset($_COOKIE['comment_author_'.COOKIEHASH]) ? 
			trim(stripslashes($_COOKIE['comment_author_'.COOKIEHASH])) : '';
		$comment_author_email = isset($_COOKIE['comment_author_email_'.COOKIEHASH]) ? 
			trim(stripslashes($_COOKIE['comment_author_email_'.COOKIEHASH])) : '';
		$comment_author_url = isset($_COOKIE['comment_author_url_'.COOKIEHASH]) ? 
			trim(stripslashes($_COOKIE['comment_author_url_'.COOKIEHASH])) : '';
	if ( empty($comment_author) ) {
		$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE 
			comment_post_ID = '$post->ID' AND comment_approved = '1' 
				ORDER BY comment_date");
	} else {
		$author_db = addslashes($comment_author);
		$email_db  = addslashes($comment_author_email);
		$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE 
			comment_post_ID = '$post->ID' AND ( comment_approved = '1' OR 
				( comment_author = '$author_db' AND comment_author_email = 
					'$email_db' AND comment_approved = '0' ) ) 
						ORDER BY comment_date");
	}

	get_currentuserinfo();

	define('GUESTBOOK_TEMPLATE', true);
	$include = apply_filters('guestbook_template', TEMPLATEPATH . $file );
	if ( file_exists( $include ) )
		require( $include );
	else
		require( ABSPATH . 'wp-content/themes/default/guestbook.php');

	endif;

}
// Ende: Erweiterung für Gästebuch Template

Auch diese Date kann hier heruntergeladen werden und muss danach in comment-functions.php umbenannt werden. Die Datei dann in den Ordner wp-includes uploaden.
Download als php-Datei
Download als php-Datei: comment-functions.phps – 4KByte

Außerdem wollte ich, dass der jeweils letzte Beitrag als erster zu lesen ist. Dazu muss die comment-functions.php ein wenig verändert werden. Bei der version, die hier downloaden könnt, ist das ganze schon passiert. Ansonsten müsst ihr folgen Code suchen


ORDER BY comment_date

und in folgenden ändern.


ORDER BY comment_date DESC

Im folgenden könnt ihr dann euer Gästebuch erstellen. Dazu erstellt ihr ein neue Seite mit dem Namen „Gästebuch“ o.ä. und fügt folgenden Code ein, natürlich nur, wenn ihr das php-Plugin nutzt (ACHTUNG: da gibt es Probleme mit WYSIWYG-Editoren-Plugins im WP):



<?php guestbook_template(); ?>

Als Template der Seite lasst ihr das Standard Template.
Nun sollte es eine neue Seite geben, mit einem Gästebuch und mit der Möglichkeit, die neuen Einträge am Anfang der Seite vorzunehmen.

Standard