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