Seit Freitag versorge ich euch ja mit einem netten kleinen Vögelchen unter den Beiträgen, dass euch mit einem Mausklick dazu animieren soll, die Beiträge bei Twitter zu kommentieren *g* – ok, wird noch nicht wirklich soooo in der Masse benutzt, aber dennoch stellte mir Angi die Frage, wie man diesen Button einbinden kann.
Hier muss man jetzt die Sache in zwei Schritte unterteilen:
- Erzeugung der TinyURL an sich
- Einbindung des Buttons ins Theme
Starten wir also mit der Erzeugung der TinyURL.
Um die TinyURL zu erzeugen, müssen wir unser Blog dazu bringen, die URL des Beitrags (= Permalink) an den Verkürzungsdienst TinyURL.com zu übermitteln und das Resultat der Kürzung entsprechend als Kurz-URL zu verwenden. Um dies zu realisieren, habe ich in die functions.php im Theme-Verzeichnis meines verwendeten Themes folgende Funktion eingebaut, die ich im Nachhinein kurz erkläre:
function get_tweetback_url($url) {
$tinyurl = file_get_contents(“http://tinyurl.com/api-create.php?url=”.$url);
return $tinyurl;
}
Wer sich die Funktion anschaut, sieht, dass sie im Grunde recht “quick and dirty” programmiert wurde – keinerlei Überprüfungen auf Gültigkeit der übergebenen URL (in der Variablen $url) oder sonstige Fehlerabfragen. Ist vorerst auch mal noch nicht notwendig, weil es um den Kern der Sache jetzt geht. Natürlich werde ich wohl in den nächsten Tagen diese Funktion weiter ausbauen, damit hier auch keine “dummen Dinge” passieren können.
Die Funktion macht also nix anderes, als die übergebene URL in der Variablen an TinyURL zu übermitteln und das Resultat wieder an die Ebene zurückzugeben, die die Funktion aufrief.
Das Teil gehört also in die Functions.php (habe sie bei mir ganz ans Ende gestellt, weil ich mir das so für mich angewöhnt habe… im Grunde könnt ihr sie aber auch an den Anfang stellen, wie ihr das wollt).
Als nächstes wäre die Einbindung des Buttons mit entsprechender Verlinkung zu Twitter gefragt. Die habe ich auf folgendem Wege mit einem Eingriff in meine Theme-Datei “single.php” erledigt:
if (function_exists(‘get_tweetback_url’) && is_single()) {
$surl = get_tweetback_url(get_permalink($post->ID));
//$msg = htmlentities(get_the_title($post->ID).” “.$surl); //diese Zeile war falsch… sorry
$msg = urlencode(get_the_title($post->ID).” “.$surl);
echo’<p><a href=”http://twitter.com/home?status=’.$msg.’” title=”Retweete diesen Beitrag!” rel=”nofollow”><img src=”/wp-content/themes/aargau_german/img/twitter.png” alt=”retweet it!” style=”border: 0pt none ; width:35px; height: 50px;” /><br/>Retweet</a></p>’;
}
Diesen Block habe ich in meinem Fall unterhalb des Beitragsinhaltes (der bei mit mit the_content() ausgegeben wird) angeordnet, es ließe sich aber generell wohl recht frei platzieren.
Kurze Erklärung, was hier passiert:
Die erste Zeile überprüft, ob wir auch in der functions.php (oder sonstwo) die Funktion oben definiert haben und ob es sich tatsächlich um eine Beitragsseite handelt. Ist beides der Fall, wird in der Variablen $surl die Kurz-URL, generiert durch unsere obige Funktion mit dem Permalink des Beitrages, gespeichert und in der Variablen $msg wird die Twitternachricht zusammengebaut, bestehend aus dem Titel des Posts + der Kurz-URL.
Die letzte Zeile (das echo) generiert nun den HTML-Code für die Einbindung des Buttons (den ich im Theme im img-Ordner gespeichert habe) und damit ist eigentlich der Fall erledigt.
Zum Schluss mag man sich die Frage stellen: Warum macht der das so kompliziert und nutzt nicht einfach ein fix und fertiges Retweet-Plugin? Ganz einfach: Ich habe am Freitag einige Plugins ausgetestet und dabei feststellen dürfen, dass diese häufig den bit.ly-Kürzungsdienst verwenden, der wiederum von meinem “Tweets als Kommentar”-Plugin “tweetbacks” nicht ordentlich erkannt wird. Da ich aber nun durch Tests eben herausgefunden habe, dass die TinyURLs zuverlässig erkannt werden, wollte ich eben diese nutzen
Wer hier noch weitere Vorschläge oder Anmerkungen zu hat – nur zu, die Kommentarmöglichkeit des Blogs wäre quasi die ideale Plattform, um Feedback loszuwerden!
Update 15:12h:
Wer ein “brachiales, rudimentäres” Caching implementieren möchte, dem seien folgende Funktionen und Aufrufe mit an die Hand gegeben (alles noch “out of the box” ohne Fehlerroutinen):
functions.php:
function get_tweetback_url($id) {
$tinyURL = get_post_meta($id, ‘tinyURL’, true);
if (strlen ( $tinyURL ) < 1 ) {
$tinyURL = get_tinyurl(get_permalink($post->ID));
add_post_meta($id, ‘tinyURL’, $tinyURL, true);
}
return $tinyURL;
}function get_tinyurl($url) {
$tinyurl = file_get_contents(“http://tinyurl.com/api-create.php?url=”.$url);
return $tinyurl;
}
Und dies in die single.php:
Tags:Plugin, Plugins, tinyurl, Tweetbacks, Twitterif (function_exists(‘get_tweetback_url’) && is_single()) {
$surl = get_tweetback_url($post->ID);
$msg = urlencode(get_the_title($post->ID).” “.$surl);echo’<p><a href=”http://twitter.com/home?status=’.$msg.’” title=”Retweete diesen Beitrag!” rel=”nofollow”><img src=”/wp-content/themes/aargau_german/img/twitter.png” alt=”retweet it!” style=”border: 0pt none ; width:35px; height: 50px;” /><br/>Retweet</a></p>’;
}











Danke für den Hinweis, gute Idee..
Du kannst allerdings auch das Plugin “sexy bookmarks” nutzen
http://www.meinungs-blog.de/geklaute-plugins-der-letzten-woche/
Da kannst Du Dir den Dienst aussuchen, unter anderem auch TinyURL..
Matthias´s last blog ..HD Trailer: Planet 51
27. Jul. 2009 um 9:40 Uhr | #
@Matthias:
Ich muss mir mal das mit den Sexy Bookmarks anschauen. Wobei ich mir keine Performance-Bremsen ans Bein binden will… Meine Methode wollte ich auch noch weiter ausbauen – im Moment ruft er ja quasi bei jedem Seitenaufruf die TinyURL-Seite auf, was noch bissel lästig ist. Ich will das lieber bissel cachen. Weiß ja jetzt nicht, ob dein Vorschlag hier schon ein Caching vornimmt… wenn ja, wäre das vielleicht eher die Wahl.
Meine Idee wäre halt, die generierte ShortURL in den PostMETA-Daten unterzubringen. Sollte nicht so schwer sein.
27. Jul. 2009 um 9:46 Uhr | #
Stimmt, kann ich gut verstehen

Matthias´s last blog ..Du musst meinen RSS Feed lesen weil..
27. Jul. 2009 um 12:06 Uhr | #
@Matthias:
Hab bei mir dann auch mal das Caching realisiert, so dass pro Artikel über die Lebensdauer des Artikels im Idealfall nur eine Anfrage an TinyURL gestellt wird
Werde die Realisierung wohl als Update in diesen Artikel heute Nachmittag auch noch einbauen.
27. Jul. 2009 um 12:23 Uhr | #
Offtopic Frage: Kim, wie hast Du die Einbindung der Blogbildchen rechts in den Kommentaren realisiert? Magst Du mir den Code dazu schicken?
Crazy Girl´s last blog ..Das optische Grauen im Netz – IE6 zeigt „die Flodders“ des Internets
28. Jul. 2009 um 8:12 Uhr | #
@Crazy Girl:
Hach, danke für diesen Anstoß: Das gibt wieder nen Artikel für heute *lach*. In 10 Minuten bekommst du hier im Blog die Anleitung *lach*.
28. Jul. 2009 um 8:16 Uhr | #
Ja, da freue ich mich drauf. Hab da nämlich eine Idee, die sich ein bißchen anders darstellt als bei Dir auf dem Blog, aber durchaus auch eine manuelle Spammer Abschreckung sein könnte *kicher*. Mal kucken ob ich das dann einfach so hinbekomme.
Crazy Girl´s last blog ..Das optische Grauen im Netz – IE6 zeigt „die Flodders“ des Internets
28. Jul. 2009 um 8:29 Uhr | #
@Crazy Girl:
Guggst du hier: http://blog.huebel-online.de/2009/07/28/wie-man-thumbnails-in-die-kommentare-einbaut/
28. Jul. 2009 um 8:39 Uhr | #
Vielen Vielen Dank
habs eingebaut und soweit ich das sehe klappt alles. Jetzt frage ich mich: Soll ich mich bei Twitter anmelden, damit ich es testen kann? Der Button soll ja hauptsächlich der Tatsache Rechnung tragen, dass immer mehr Menschen twittern, und Ihnen die Möglichkeit geben das auch über meine Posts zu tun – ich selber habe mich aber bisher beharrlich geweigert zu twittern da ich fest davon überzeugt bin, dass mir das die wenige Zeit die ich noch für nicht-PC-Dinger habe klauen würde *bg*
Angi´s last blog ..Harry Potter 6 im Kino
28. Jul. 2009 um 20:03 Uhr | #
Ach ja, habe dein Vögelchen geklaut, ich hoffe das ist ok *schuldbewusst dreinschaut*

Angi´s last blog ..Harry Potter 6 im Kino
28. Jul. 2009 um 20:03 Uhr | #
@Angi:
Wenn ich dir nen Rat geben darf: Lass die Finger von Twitter *lach* es klaut dir deine Zeit – ne, Spaß beiseite… ich glaube nicht, dass du, die ersten 2-3 Wochen mal ausgenommen, später wirklich viel Zeit durch Twitter verlieren wirst, weil man es “nebenbei” tut… so quasi wie ne Tasse Kaffee nebenbei trinken oder (weniger gesund) ne Zigarette nebenbei rauchen…
Was das Vögelchen angeht: Den darfst du ruhig klauen, den hab ich selbst von einer Seite, wo er “frei zur Verfügung gestellt wurde”.
29. Jul. 2009 um 7:52 Uhr | #
Hallo Liebster!
Ich wollte mal wieder etws selbst in die Hand nehmen. Hätte ich’s nur gelassen – jetzt ist mein Selbstwertgefühl wieder im Keller
Es hat nicht funktioniert, obwohl Du es so schön ausführlich erklärt hast!
LG
Sandra!
Sandra Meisje Mayer´s last blog ..Projekt52: Himmlisch
29. Jul. 2009 um 16:46 Uhr | #
@Sandra: Hast du so eine komische Fehlermeldung nach dem Bearbeiten der Theme-Datei? Hatte ich erst auch. Das liegt daran dass die Anführungszeichen (‘ und “) beim einfügen in den WP-Editor falsch übernommen werden. Die muss man dann manuell neu machen.
29. Jul. 2009 um 17:55 Uhr | #
@Angi: Kim hat’s soeben gerichtet. Danke!
Sandra Meisje Mayer´s last blog ..Meine Diät schmeckt mir
29. Jul. 2009 um 19:21 Uhr | #