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.
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-Datei: guestbook.phps – 4KByte
Download als php-Datei: comment-functions.phps – 30KByte
Download als php-Datei: guestbook-page.phps – 1KByte
Download als php-Datei: guestbook-single.phps – 2KByte
Hi,
vielen Dank für die Hilfe. Stand etwas verdutzt da als nach dem Update mein Gästebuch weg war.
In deiner comment-functions.phps fehlt nur noch die richtige Sortierung der Gästebucheinträge. Also der letzte Beitrag zu Erst. Aber das ist ja mit einem „DESC“ am ende der beiden SQL Abfragen schnell eingebaut.
Gruß
Michael
@Michael:
Danke für den Hinweis, habe es sofort nachgearbeitet und nochmal in die Beschreibung aufgenommen.
LG Frank
Hi,
leider gibt es das Plugin nicht (mehr?) bei deinem angegebenen Link. Weißt du vielleicht noch einen andere Quelle?
Viele Grüße, ishtar
Ja, hier gibt es das Plugin. Eigentlich gibt es hier so ziemlich alle Plugins, Seite also merken.
–> http://wp-plugins.net/plugin/exec-php/
LG Frank
Danke Frank! Habe die Seite auch gleich zu meinen Favortiten dazugefügt.
Liebe Grüße, ishtar
hi
wordpress 2.0 guestbook turkish and english language support ??
@Onur:
No – sorry. Only translate with google – click on the english flag. Translate the template guestbook.php in your language, it’s easy and little words.
With best regards – Frank
danke für deine plugin~anleitungen!
: Als Inhalt ruft ihr die Funktion guestbook_template mit Hilfe von PHP auf.
der code, den du dort angibst, ist verstümmelt. opera und firefox zeigen ihn nicht korreckt an.
kannst du das bitte einmal überprüfen und korrigieren?
dankeschön! lieben gruß rene
@rene: Kann das Problem leider nicht nachvollziehen. bei den verschiedenen Tests in verschiedenen Browsern ist der Code sichtbar, normal.
Bitte erläutere das Problem etwas näher – Danke.
LG Frank
hallo frank,
verwundert: heute ist der code auch bei mir sichtbar. (?)
danke! lieben gruß rene
Hallo,
ich habe versucht ein Gästebuch nach deiner Beschreibung in WP2.0 einzurichten.
Leider kam nur die Meldung:
Fatal error: Call to undefined function: guestbook_template() in /home/olympdbv/www.olympia4ever.de/wp-content/plugins/exec-php.php(45) : eval()’d code on line 1
was heißt das???
Gruß
Ralph
@Ralph,
die Funktion wird in der comment-functions.php aufgerufen. Denk mal, dass du die nicht ausgetauschst hast. Falls nicht, dann bitte nochmal melden und ich sehe es mir an.
LG Frank
Hab alles so wie oben beschrieben gemacht, aber mir zeigts einfach kein Gästebuch an. 🙁
Glaube das es mit dem php code was zu tun hat den ich einfügen sollte auf der guestbook seite.
hab den fehler gefunden 🙂
besitze die originalversion also mein pfad ist \default\ und nicht \defualt_de\… jetzt hab ich den einen pfad in der commentfunctions.php geändert aber es klappt immer noch nicht! 🙁
@Manuel:
Wenn ich mir das ansehen soll, benötige ich mehr Infos. So sehe ich auch nur die leere Seite.
PHP-Plugin ist aktiviert und läuft?
comment-functions.php ist installiert und die guestbook.php ?
Ansonsten sende mir mal die comments.php aus deinem Theme per Mail.
LG Frank
Moinsen!
Hab dein Gästebuch bei mir eingebaut und es läuft auf Anhieb. Großes Lob!
Das einzige Problem ist, dass es sich anscheind mit meinem Theme (Loop) nicht so versteht. Könntest du dir das bitte mal angucken und mir evtl Tips geben? Wäre dir sehr dankbar.
http://www.the-papst.de/?page_id=7
Habs schon selber hinbekommen….
gibt es in diesem gästebuch eine „blätterfunktion“ sobald die einträge mal so lang werden?ich suche schon seit wochen genau so ein gästebuch mit blätterfunktionen
@manny:
nein, es gibt bisher keine Blätterfkt. Dazu müsste man ein weiteres Plugin integrieren, dazu fehlte mir aber bisher einfach die Zeit. Genauso wie ich für dieses Gästebuch eigentlich ein Plugin machen wollte, damit es einfacher zu implementieren ist.
Sobald ich wieder etwas mehr Zeit habe, setze ich mich dran.
LG Frank
@manny
schau mal hier:
Hallo,
das Gästebuch läuft super – aber wie das immer so ist… man findet immer etwas was besser sein könnte. Ich habe mir schon die augen blutig gesucht im quelltext – aber ich glaube das ist kniffliger.
Es handelt sich um die druchnummerierung der Gasteinträge.
Hat nicht wirklich einen nutzen – ist halt einfach nett wenn man auf „eintrag 23“ antworten kann.
Nun ist es aber so das ich beim probieren einträge gemacht habe – und die dann auch wieder gelöscht hab.
Jetzt fängt der erste Eintrag mit „9“ an – sieht blöd aus.
Auch für die Zukunft wird es sich nicht vermeiden lassen das man Einträge löschen muß/möchte.
Auch da würden dann lücken entstehen bei der chicken aufzählung.
Kann man das nummerisch korrekt gestalten?
Gruß
Ralph
@Ralph:
Ersetzte mal folgenden Code
mit
Bin aber auch der Meinung, dass dieses Thema schonmal im WordPress-Forum besprochen wurde. Benutze mal dort die Suche.
LG Frank
Hallo Frank,
ich habe die Änderung wie angegeben gemacht – geht leider immer noch nicht.
Ich habe auch vergessen einen link zu meinen Gaestebuch anzugeben (www.olympia4ever.de/gaestebuch)
Die „9“ steht noch immer stur da – ist ja auch logisch. Ich fordere ja auch auf die comment_ID anzugeben 🙂
der code der jetzt drin ist sieht so aus:
Problem gelöst – wie immer am Ende ganz einfach!
Und so sieht es dann im ganzen aus:
*grrrrrrr*
jetzt zählt dieses gästebuch die einträge „rückwärts“, d.h. der letzte eintrag bekommt die „1“.
@Ralph: das kannst du sicher in der coments-functions.php ändern. schau mal nach. Dort kann man das ganze auf DESC setzen und dann ist es rückwärts.
Besten Dank, aber an welcher stelle?
siehe hier: https://bueltge.de/wp-gaestebuch-integrieren/36/
Da gibt es im code „ORDER BY comment_date“, setze es auf „ORDER BY comment_date DESC“.
Ich arbeite den Zähler so ein, wie in meiner ersten Antwort geschrieben, etwas umständlihcc als ein einfacher Counter, aber ich habe die Reihenfolge dabei.
Den Tipp von der ersten Antwort hatte und habe ich noch so umgesetzt. Leider ändert sich bei mir dann nichts.
diesen code habe ich in guestbook.php
Bitte nimm mal in der comment-ductions.php „DESC“ raus und lass nur „ORDER BY comment_date“ stehen bleibt. Nun ist die Reihenfolge von 1-9 und es sollte eine Nummer mitgeführt werden. Wenn du es in anderer Reihenfolge benötigst mit Nummer, so habe ich derzeit keine Lösung. Mir fehlt es einfach an Zeit, habe schon eine große „ToDo“-Liste, aber …
Sorry. Ich hoffe es geht trotzdem, wie du es benötigst.
LG Frank
Hallo, hab auch noch ein kleines Problem mit meinem Gästebuch. Unter den normalen Gästebuch erscheint immer noch das normale Kommentarfeld. Jeder Eintrag ins Gästebuch wird auch in das Kommentar geschrieben. Kannst ja mal schauen auf meiner website. http://www.farin-online.de.vu unter Gästebuch. Mit dem default_de Theme geht es, aber mit meiner Theme nicht.
Hab auch schon im comment-functions.php die stelle geändert, aber halfs nicht:
wp-content/themes/>darknight2.0
Hallo Chris,
das liegt nicht in der comment-functions.php, du musst in deinem verwendeten Theme schauen. Die php-Seite, die die für deine Darstellung da ist (bei default ist es die single.php) ruft scheinbar immer die comments.php auf. In diesem Fall musst du dir diese php-Seite kopieren, diesen Eintrag durch guestbook.php ersetzen und den Code in der Seite, welchen du jetzt über dein Admin-Panel eingepflegt hast raus nehmen.
Dann sollte es gehen.
LG Frank
ich glaub ich versteh nur Bahnhof. Sorry aber ich hab von WordPress usw. gar keine Ahnung. Ich war froh das ich die Site hinbekommen habe :)… muss wohl das Gästebuch entfernen
gruß chris
Habe dir eine mail gesandt. Schau mal nach.
Ich benötige das Theme, welches du verwendest und dann schau ich mal.
Mal ne frage, wie stell ich denn ein, dass jeder ins gästebuch schreiben kann, auch ohne dass er auf der seite registriert ist?
@Klaus:
Das kannst du in der Admin-Oberfläche von WP einstellen: –> Optionen –> Diskussion –> „Haken bei Erlaube Besuchern Beiträge zu kommentieren“.
LG Frank
Oke, besten dank! aber besteht die möglichkeit, NUR im gästebuch nicht-angemeldeten Usern kommentare zu erlauben? So dass man zum kommentieren von normalen beiträgen angemeldet sein muss.
Nein, da nur die Kommentarfunktion genutzt wird, es ist keine neue Funktion und wird demzufolge auch nicht über eine neue Abfrage im Adminbereich konfiguriert.
LG Frank
So, ich habe ne Frage die hier per MAIL beantwortet wurde, leider?!
1. Also, in meinem Gästebuch ist ganz unten immernoch das Formularfeld für „Leave a comment“. Nutze Englische WP!
Das möchte ich weg haben.
2. Das Eingabefeld für das Gästebuch ist VIEL ZU GROSS, es zerreisst mir die Seite, wie kann ich das ändern?
Anzusehen auf http://www.bruegge-mann.de
danke 😉
okay, dankeschön, ich dachte man kann das evtl für jede seite oder kategorie getrennt einstellen.
ich hätte noch eine frage, ist es denn möglich einzustellen, wieviele gästebucheinträge pro seite angezeigt werden? weil es ist ja irgendwie blöd bei beispielsweise 600 einträgen alle auf einer seite darzustellen
In meiner Version nicht, aber schau mal unter Kommenter 21 bzw hier.
LG Frank
@Torben:
1. Das liegt am Theme, du musst dir ein neues Template erstellen und dort comments_template gegen gustbook_template austauschen. Dieses in dein Theme laden und dann als Template für die Seite „Gästebuch“ auswählen. Den php-Code in der Seite kannst du löschen.
2. Das ist nur mit CSS machbar. Wenn du aber die Seite so erstellst, wie in 1. beschrieben, wird das Problem sicher nicht mehr bestehen.
Wenn du Probleme hast, dann sende mir ne mail mit deinem Theme und ich erstellen dir die Seite.
LG Frank
Moin Frank…
zu 1. Ich beschäftige mich seit Jahren mit CMS usw aber mit dem WP komm ich nicht ganz klar. warum? keine Ahnung…
Ich habe also keinen blassen schimmer was du mit 1. meintest.
zu 2. wie gesagt bastel schon seit langem mit sowas rum aber erst seit 1 Jahr mit CSS, mal sehen ob ich das hinbekomme…
welche Dateien von meinem Theme brauchst du denn da?
mfg und danke Torben
Bitte sende mir dein kompletes Theme als zip, dann suche ich mir die entsprechende Seite und kann dir den Rest erläutern, oder du richtest mich auf deinem Blog ein. Mehr Infos sende ich dir dann per eMail, wenn ich mir dein Theme angesehen habe.
MfG Frank
Kann komischerweise gerade keine Mails senden! Mist alles hier 😉
http://www.bruegge-mann.de/minimaplus.rar das ist mein Theme 😉
Danke Dir und kannst mir ja mal dazuschreiben, was du nun geändert hast. Ich muss den mist kapieren, da ich mich ja mit PHP, css und HTML auch auskenne und dieses für meine CMS nutze, kanns ja net so schwer sein durch dieses kleine WP durchzusteigen, heul!
mfg Torben
@Torben: siehe eMail incl. der nötigen Dateien.
LG Frank
Hallo,
nachdem ich nun schon einige Zeit mit Rumwall herumexperimentiert habe und leider zu keinem vernünftigen Ergebnis gekommen bin habe ich diese super Anleitung entdeckt. Soweit alles Schritt-für-Schritt erledigt, habe nur noch ein kleines Problem was für jemanden mit etwas mehr Erfahrung wahrscheinlich schnell zu lösen ist. Ich verwende das Standard-Theme, doch leider werden die Zeilen des Gästebuchs nicht umgebrochen. Wo kann ich das ändern?
Link zur Seite: http://www.puppenstudio-lang.de/wp/?page_id=5
Bestend Dank im voraus
Hallo,
das musst du eigentlich garnicht, das macht das Template. Das Problem hatten schon andere vor dir. Dort war es jedesmal weg, wenn sie es nochmal sauber eingebaut haben.
LG Frank
Sorry, WP-Anfänger: Du meinst die guestbook.php? Da habe ich aber nichts geändert. Hab sie auch gerade nochmal neu hochgeladen – leider ohne Erfolg!
Hallo Marc,
kann das Problem nicht finden. Habe es soeben nochmal unter WP2.0.2 getestet. Läuft wunderbar. Habe jetzt aber noch zwei Templates für das default_de-Theme gemacht. Lade sie noch auf dieser Seite noch.
Nutze mal eines dieser Templates. Den Code und das php-Plugin in den Seiten ist dann nicht mehr nötig.
Super! Jetzt passts! Nur den unteren Text „Der Beitrag wurde am .. bla bla“ muss ich noch wegkriegen! Besten Dank für deine Hilfe!
Sehr schön.
Ich habe gerade ein Plugin fertig geschrieben, bei dem man keine Dateien von WordPress mehr verändern muss. Es ist eine eigenständiges Plugin. Da du nun gerade erst das Gästebuch eingebaut hast, würde ich trotzdem gern wissen, ob du es über das Wochenende für mich testen kannst?
Die Install liegt in einer txt-Datei dabei. Den Artikel werde ich wohl erst nächste Woche aufsetzen können, mangels Zeit.
Würde dir die Dateien mal eben per Mail zukommen lassen.
LG Frank
ok, her damit 😉
… Ist soeben per Mail raus. Danke !
Hi Frank,
also wirklich. Herzlichen Dank für die tolle Arbeit. Gefällt mir echt gut.
Hab jetzt nur noch den Hintergrund der Einträge farblich, passend zum Rest des Themes geändert
Viele Grüße
Jens
Hey!
Vielen dank fuer das Plugin, ist echt ne geile Sache!
Habe jedoch ein Problem mit meinem Skin [?]
Die fuer den „Eintrag“ und der Submit – Button sind zu gross und laesst sich auch nicht durch cols=“xy“ verkleinern.
Die Textarea & Submit-Button gehen in meine Navigation rein.
Wie kann ich den Fehler beheben?
Gruß
Malte
Hallo Malte,
dazu benötige ich mal einen Link zu deiner Seite udn dann kann ich vielleicht merh sagen.
tritt bei allen themen auf die ich benutze. eins davon zb hier:
http://sylb.kag-sv.de/?page_id=3
Gruss
Malte
Hallo Malte,
das Design musst du per CSS anpassen. Gegebenfalls, aud der comments.php eine guestbook.php machen, damit der Inhalt und die IDs die gleichen sind. Ansonsten sende mir mal den Namen deines Themes und ich schau mal drüber.
LG Frank
Es lebt *muahahaha*, mein Gästebuch lebt…
Danke für das Script! Ist soooo toll, dass es nicht das Design verbiegt.
Gruß
Andy
Hallo Frank,
ich habe in Kommentar 41 etwas über ein zu großes Eingabefeld gelesen. Genau dieses Problem tritt auf der Page meiner Freundin auch auf. Leider habt Ihr (Torben und Du) die Lösung durch das versenden von Dateien gelöst.
Kannst Du mir (von mir aus auch per Mail 🙂 ) sagen welcher CSS Eintrag dazu benötigt / geändert werden muss?
Gruß
Theo
Hallo Theo,
ich habe dazu ein Plugin erstellt, so dass du lieber auf das zugreifen solltest. Wenn du es schon nutzt und noch Hilfe zum Theme benötigst, dann schau mal auf der zugehörigen Theme-Site, ob du dein verwendetes Theme findest.
Die Dateien, die ich mit Torben ausgetauscht habe, findest du hier: Themes-Dateien.
LG Frank