Es gibt viele Plugins, die eine Tweet-This-Funktion für Wordpress bereitstellen, also einen Link, der auf twitter.com verweist und automatisch einen Link zum gerade gelesenen Artikel in das Textfeld einfügt. Aber für so einen Kleinkram gleich ein eigenes Plugin installieren? Braucht man nicht, das kann man auch mit ein paar Zeilen in der functions.php eines Themes machen. Gesagt, getan und weil sich @datenkind eine Veröffentlichung gewünscht hat, hier ist das Ding.

/*
    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 = 90){
        global $post;
        // Tinyurl holen
        $url = get_permalink();
        $fp = fopen('http://tinyurl.com/api-create.php?url='.$url, 'r');
        if($fp){
            $tinyurl = fgets($fp);
        }
        fclose($fp);
        // Titel des Artikels kuerzen
        $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>';
    }
}

Das Ganze gibt direkt einen fertigen Link zurück, den man nur noch mit echo o.Ä. ausgeben muss. Alle drei Funktionsparameter sind optional bzw. mit Standardwerten ausgestattet:

  • $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 mit den Standards leben kann (Linktitel Artikel twittern und Twitter-Nachricht Lese gerade: %TITLE %URL) kann einfach irgendwo in seinem Post-Loop echo get_tweet_this_link(); einfügen.