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.
Kommentare (6)
Marvin ¶
17. April 2009, 09:52 Uhr
Super Lösung, danke dafür! Ausserdem ist es doch immer schöner, wenn man gleich sieht, auf welcher url man landet. werde ich gleich mal testen :)
Thomas Scholz ¶
17. April 2009, 14:17 Uhr
Schöne Umsetzung, Peter! Zwei Vorschläge habe ich noch: Man kann den Titel auch so kürzen, daß er kein Wort zerpflückt, und er sollte mit einer echten Ellipse enden … das ist kürzer und sieht besser aus.
René Fischer ¶
10. Juni 2009, 00:02 Uhr
Klasse Artikel. Gibts das Ganze auch als Plugin zum Installieren? Möchte nicht so gern direkt im Code hantieren.
Peter ¶
10. Juni 2009, 00:12 Uhr
Zitat René Fischer:
Noch nicht. Aber wenn man Code einfach so in die functions.php kopiert, sollte das gefahrlos laufen.
Patrik Mastellotto ¶
17. Juni 2009, 15:05 Uhr
hallo peter,
vielen dank für den code. hat bei mir wunderbar geklappt, obwohl ich mit programmieren so gar nichts am hut habe.
hatte zuvor die lösung von sergej laufen. auch hübsch. allerdings kam tr.im nach meinem serverumzug mit den permalinks nicht mehr zurecht. jetzt läuft alles wunderbar.
http://cirquent-blog.de
beste grüße
patrik
Dieter ¶
6. Juni 2011, 16:28 Uhr
Hallo Peter,
Dein schönes Codebeispiel funktionierte früher bei mir und nun nicht mehr. Zwar geht Dein neueres Beispiel aus dem Artikel Tweet-this-Link mit Twitters URL-Shortener, aber ich hätte gerne weiterhin den Link mit Domain/?p=xxx.
Weist Du, ob das noch geht? Falls ja, wäre es super, wenn Du beschreiben könntest wie.
Beste Grüße von einem begeisterten Leser Deines Blogs und wenn HTML5 auf meine Agenda kommt auch Deines Buches
Dieter