Wir hatten das Thema Tweet-This-Link für Wordpress in diesem Blog ja schon zweimal. Die erste Ausführung wurde in einer zweiten Version nach Vorschlag aus den Kommentaren mit einem Cache für die Kurz-URLs von Tinyurl.com ausgestattet.

Allerdings hat die Verwendung von Tinyurl.com und ähnlichen Diensten diverse Haken. Die Lösung ist die Verwendung von Wordpress-Internen Kurz-URLs vom Format Blog-URL/?p=Beitrags-ID. Das behebt nicht nur sämtliche oben angesprochenen Nachteile von Tinyurl, sondern macht die ganze Geschichte auch schneller, da API-Requests an irgendwelche externen Seiten jetzt ja komplett entfallen. Dafür sind die so entstehenden URLs dann nicht ganz so kurz.

Wer also eine nicht zu lange Domain sein Eigen nennt, findet mit der unten stehenden Variante die beste Option für Tweet-This-Links.

/*
	Tweet-This-Link
*/
if(!function_exists('get_tweet_this_link')){
	function get_tweet_this_link($message_template = 'Lese gerade: %TITLE %URL', $link_title='Artikel twittern', $title_length = 80){
		global $post;
		// Via http://toscho.de/2009/shortlinks-in-wordpress/
		$tinyurl = trim(get_option('home'), '/') . '/?p=' . $post->ID;
		// Titel des Artikels kürzen
		$title = $post->post_title;
		if(strlen($title) > $title_length){
			$short_title = substr($title, 0, $title_length);
			$short_title .= '...';
		}
		else{
			$short_title = $title;
		}
		// Link erstellen
		$message = str_replace(array('%TITLE', '%URL'), array($short_title, $tinyurl), $message_template);
		$message = urlencode($message);
		return '<a href="http://twitter.com/home?status='.$message.'">'.$link_title.'</a>';
	}
}

Die Benutzung bleibt auch diesmal wie vorher: im Blog-Template an beliebiger Stelle im Loop <?php echo get_tweet_this_link() ?> einfügen und optional diese Parameter verwenden:

  • $message_template: Die Twitter-Nachricht mit den Platzhaltern %TITLE für den Artikeltitel und %URL für den Link. Beide werden automatisch eingefügt und gekürzt.
  • $link_title: Die Beschriftung des Links.
  • $link_length: Die maximale Länge des Titels, bevor er gekürzt wird.

Wer nicht gegen die Defaults hat (Linktitel Artikel twittern und Twitter-Nachricht Lese gerade: %TITLE %URL) braucht sich um die Extra-Parameter weiter nicht zu kümmern.