Für Menschen · Seien Sie begeistert und Sie werden begeistern !
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.
Ab jetzt gibt es ein Plugin, welches die Arbeit erspart - siehe "WP Guestbook plugin".
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.
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.
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/).
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.
<?php guestbook_template(); ?>
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 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
Ich bin urlaubsreif, ersticke in Arbeit und damit auch für die Leser des Weblogs nicht zu erreichen. Bitte geduldet euch ein wenig mit Supportanfragen.
Leider muss ich die Kommentarfunktion deaktivieren, ansonsten würde ich weiter in Arbeit ersticken oder die Anfragen nicht nach bestem Gewissen beantworten.
Vielen Dank für das Verständnis!
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 854 Beiträge, 15038 Kommentare in 14 Kategorien und 450 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
2. Januar 2006 um 09:51
2. Januar 2006 um 23:01
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
3. Januar 2006 um 08:06
@Michael:
Danke für den Hinweis, habe es sofort nachgearbeitet und nochmal in die Beschreibung aufgenommen.
LG Frank
15. Januar 2006 um 14:01
Hi,
leider gibt es das Plugin nicht (mehr?) bei deinem angegebenen Link. Weißt du vielleicht noch einen andere Quelle?
Viele Grüße, ishtar
15. Januar 2006 um 18:57
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
15. Januar 2006 um 20:35
Danke Frank! Habe die Seite auch gleich zu meinen Favortiten dazugefügt.
Liebe Grüße, ishtar
19. Januar 2006 um 21:10
hi
wordpress 2.0 guestbook turkish and english language support ??
20. Januar 2006 um 00:43
@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
21. Januar 2006 um 22:53
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
22. Januar 2006 um 15:05
@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
22. Januar 2006 um 16:32
hallo frank,
verwundert: heute ist der code auch bei mir sichtbar. (?)
danke! lieben gruß rene
28. Januar 2006 um 12:01
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
29. Januar 2006 um 18:27
@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
8. Februar 2006 um 16:05
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.
8. Februar 2006 um 16:24
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!
9. Februar 2006 um 07:50
@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
13. Februar 2006 um 22:23
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=713. Februar 2006 um 22:40
Habs schon selber hinbekommen....
15. Februar 2006 um 12:09
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
15. Februar 2006 um 12:25
@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
17. Februar 2006 um 12:57
@manny
schau mal hier:
22. Februar 2006 um 20:25
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
23. Februar 2006 um 08:03
@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
25. Februar 2006 um 09:58
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:
25. Februar 2006 um 10:15
Problem gelöst - wie immer am Ende ganz einfach!
Und so sieht es dann im ganzen aus:
25. Februar 2006 um 10:45
*grrrrrrr*
jetzt zählt dieses gästebuch die einträge "rückwärts", d.h. der letzte eintrag bekommt die "1".
25. Februar 2006 um 13:17
@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.
28. Februar 2006 um 09:47
Besten Dank, aber an welcher stelle?
function get_comments_number( $post_id = 0 ) { global $wpdb, $comment_count_cache, $id; $post_id = (int) $post_id; if ( !$post_id ) $post_id = $id; if ( !isset($comment_count_cache[$post_id]) ) $comment_count_cache[$id] = $wpdb->get_var("SELECT comment_count FROM $wpdb->posts WHERE ID = '$post_id'"); return apply_filters('get_comments_number', $comment_count_cache[$post_id]); } function comments_number( $zero = 'No Comments', $one = '1 Comment', $more = '% Comments', $number = '' ) { global $id, $comment; $number = get_comments_number( $id ); if ($number == 0) { $blah = $zero; } elseif ($number == 1) { $blah = $one; } elseif ($number > 1) { $blah = str_replace('%', $number, $more); } echo apply_filters('comments_number', $blah); }28. Februar 2006 um 12:21
siehe hier:
http://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.
28. Februar 2006 um 12:35
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
<?php if ($comment_date->ordering == 'DESC') { $comment_number = ($paged_comments->pager-> get_current_page() - 1) * $paged_comments->pager->get_items_per_page() + count($comments); $comment_delta = -1; } else { $comment_number = 1; $comment_delta = 1; } ?>28. Februar 2006 um 14:27
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
2. März 2006 um 11:59
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.vuunter 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
2. März 2006 um 12:31
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
2. März 2006 um 13:19
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
2. März 2006 um 13:56
Habe dir eine mail gesandt. Schau mal nach.
Ich benötige das Theme, welches du verwendest und dann schau ich mal.
3. März 2006 um 00:24
Mal ne frage, wie stell ich denn ein, dass jeder ins gästebuch schreiben kann, auch ohne dass er auf der seite registriert ist?
3. März 2006 um 07:48
@Klaus:
Das kannst du in der Admin-Oberfläche von WP einstellen: --> Optionen --> Diskussion --> "Haken bei Erlaube Besuchern Beiträge zu kommentieren".
LG Frank
3. März 2006 um 16:26
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.
3. März 2006 um 23:47
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
4. März 2006 um 19:21
5. März 2006 um 13:33
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.dedanke
5. März 2006 um 16:09
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
5. März 2006 um 17:46
In meiner Version nicht, aber schau mal unter Kommenter 21 bzw hier.
LG Frank
5. März 2006 um 17:58
@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
6. März 2006 um 07:01
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
6. März 2006 um 11:14
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
6. März 2006 um 12:03
Kann komischerweise gerade keine Mails senden! Mist alles hier
http://www.bruegge-mann.de/minimaplus.rardas ist mein ThemeDanke 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
6. März 2006 um 20:38
@Torben: siehe eMail incl. der nötigen Dateien.
LG Frank
12. März 2006 um 18:19
17. März 2006 um 11:25
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=5Bestend Dank im voraus
17. März 2006 um 11:50
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
17. März 2006 um 12:09
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!
17. März 2006 um 14:47
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.
17. März 2006 um 16:24
Super! Jetzt passts! Nur den unteren Text "Der Beitrag wurde am .. bla bla" muss ich noch wegkriegen! Besten Dank für deine Hilfe!
17. März 2006 um 16:38
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
17. März 2006 um 16:55
ok, her damit
17. März 2006 um 17:03
... Ist soeben per Mail raus. Danke !
19. März 2006 um 00:17
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
7. April 2006 um 16:55
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
19. April 2006 um 11:47
Hallo Malte,
dazu benötige ich mal einen Link zu deiner Seite udn dann kann ich vielleicht merh sagen.
19. April 2006 um 20:29
tritt bei allen themen auf die ich benutze. eins davon zb hier:
http://sylb.kag-sv.de/?page_id=3Gruss
Malte
24. April 2006 um 08:08
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
26. April 2006 um 20:44
Es lebt *muahahaha*, mein Gästebuch lebt...
Danke für das Script! Ist soooo toll, dass es nicht das Design verbiegt.
Gruß
Andy
11. Juli 2006 um 14:27
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.
) sagen welcher CSS Eintrag dazu benötigt / geändert werden muss?
Kannst Du mir (von mir aus auch per Mail
Gruß
Theo
11. Juli 2006 um 14:54
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
25. August 2006 um 02:34
5. März 2007 um 11:19
10. Februar 2009 um 19:32
Hi, werden denn Gästebucher wieder modern? Ich dachte diese Dinosaurier wären längst ausgestorben?