Tweet This mit WordPress

In der Aufarbeitung meiner Abonnements im Feed-Reader sind mir diverse Artikel aufgefallen, die das eine oder andere Plugin empfehlen um einen Link zum Beitrag zu ergänzen, um den jeweiligen Beitrag bei Twitter zu empfehlen. Im Grunde stellen dann die meisten Plugins eine Funktion beriet, die man in das Template des Themes integriert. Wie so oft ist das aber ein wenig übertrieben, und wie auch schon in der Vergangenheit mit der Integration von Links zu Social Bookmark Diensten, gibt es auch dafür eine einfache Lösung mi Hilfe einer Funktion aus dem WordPress Core.

TwitBird
Twitter scheint auch weiterhin an Popularität zu gewinnen und der eine oder andere hat gar den kompletten Umzug durchgeführt - kein Blog mehr, nur eine Adresse bei Twitter.
In der Aufarbeitung meiner Abonnements im Feed-Reader sind mir diverse Artikel aufgefallen, die das eine oder andere Plugin empfehlen um einen Link zum Beitrag zu ergänzen, um den jeweiligen Beitrag bei Twitter zu empfehlen. Im Grunde stellen dann die meisten Plugins eine Funktion bereit, die man in das Template des Themes integriert.

Wie so oft ist das aber ein wenig übertrieben, und wie auch schon in der Vergangenheit mit der Integration von Links zu Social Bookmark Diensten, gibt es auch dafür eine einfache Lösung mit Hilfe einer Funktion aus dem WordPress Core.

Twitter stellt eine URL bereit, die genau das Empfehlen von Beiträgen oder anderen Links bewerkstelligt. Mit Hilfe des Permalink-Template Tag von WordPress ist daher auch einfach und schnell der Link generiert.


<a href="http://twitter.com/home?status=Lese:%20<?php the_permalink(); ?>">Tweet this</a>

Nun gilt es nur die Syntax in das Template des Themes zu integrieren, in der Regel sollte das die single.php des Themes sein. In einigen einfachen Fällen kommt die index.php ebenso in Frage, je nach Aufbau des Themes.

Erweiterung via Tiny-URL

Ein kleines Update möchte ich nachschieben, denn der einen oder andere Nutzer will die URL bei der Übergabe direkt kürzen - siehe Ad in den Kommentaren, denn 140 Zeichen sind doch recht wenig und hier gilt es Zeichen sparen. Aber auch dafür gibt es eine einfache Lösung, die jedoch eine Funktion benötigt, die aus unserem Permalink ein verkürzte URL erstellt.

Dazu muss man nicht viel coden oder suchen, den der Service von TinyURL.com stellt dazu eine API bereit, der diese Aufgabe einfach übernimmt. Die nötige Funktion habe ich von René genommen, da er sie schon in seinem Blog veröffentlicht hat.

Dazu lege ich folgende Funktion in die functions.php des Themes ab.


/**
 * get a short/tiny url
 * @author: René Ade
 * @link: http://www.rene-ade.de/inhalte/php-code-zum-erstellen-einer-tinyurl-ueber-tinyurl-com-api.html
 */
if ( !function_exists('fb_gettinyurl') ) {
	function fb_gettinyurl( $url ) {
	
		$fp = fopen( 'http://tinyurl.com/api-create.php?url=' . $url, 'r' );
		if ( $fp ) {
			$tinyurl = fgets( $fp );
			if( $tinyurl && !empty($tinyurl) )
				$url = $tinyurl;
			fclose( $fp );
		}
	 
		return $url;
	}
}

Die Integration des Link in das Template des Themes muss dann allerdings ein wenig anders aussehen, denn the_permalink() ist für die Ausgabe erstellt und übergibt nicht nur den Wert der URL. Aber auch hier ist die saubere Trennung in WordPress von echo und return-Funktionen überaus nützlich und so kann man einfach und schnell die Basis dieses Template Tags nutzen - get_permalink().

Nun steht die Funktion zum Ertsellen einer verkürzten URL bereit und wir können den eingangs beschriebenen Link in das Template einbauen. Eine mögliche Syntax könnte wie folgt aussehen.


<a href="http://twitter.com/home?status=Ich%20empfehle:%20<?php echo fb_gettinyurl( get_permalink() ); ?>">Tweet this</a>

URL Codierung

Weil es auch dazu schon Fragen gab, gebe ich nochmal kurz einen Hinweis. In der URL kann man nicht einfach ein Leerzeichen übergeben, ähnlich ist es mit anderen Zeichen und so muss man diese Zeichen codieren. Dies kann man via PHP machen oder nutzt eine kleine Tabelle zum Nachschlagen. Damit erschließt sich dann auch, warum ich %20 in meinem Text einsetzen - %20 steht für ein Leerzeichen.

Arbeitet mit Hilfe der PHP Funktion, dann könnte die obige Syntax wie folgt aussehen.


<a href="http://twitter.com/home?status=<?php echo urlencode( 'Ich empfehle: ' ) . fb_gettinyurl( get_permalink() ); ?>">Tweet this</a>

Tweet die Kommentare

Auch das empfehlen einzelner Kommentare sollte damit klappen, denn auch das ist im Grunde nur ein Link. Da hier die URL wesentlich länger ist, zeige ich gleich mal die Syntax mit Hilfe der obigen Funktion um eine kurze URL zu generieren. Hier im Blog ist diese Möglichkeit nicht aktiv und wurde auch nicht getestet - sollten also Verbesserungen bekannt sein oder Fehler auffallen, dann bitte ich um Hinweis in den Kommentaren.


<a href="http://twitter.com/home?status=Kommentarempfehlung:%20<?php echo fb_gettinyurl( get_permalink() . '#comment-' . get_comment_ID() ); ?>">Tweet this</a<

Comments are closed.