Für Menschen · Seien Sie begeistert und Sie werden begeistern !

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.
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>
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>
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<
Ich bin urlaubsreif, ersticke in Arbeit und damit auch für die Leser des Weblogs nicht zu erreichen. Bitte geduldet euch ein wenig mit Supportanfragen.
Leider muss ich die Kommentarfunktion deaktivieren, ansonsten würde ich weiter in Arbeit ersticken oder die Anfragen nicht nach bestem Gewissen beantworten.
Vielen Dank für das Verständnis!
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 854 Beiträge, 15036 Kommentare in 14 Kategorien und 450 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
1. Februar 2009 um 23:29
Hallo Frank,
es gewinnt nicht nur an Popularität, sogar eine Toplist für die Deutschen-User gibt es schon. Siehe hier >
http://www.twitcharts.dePS Es ist ein Projekt von mir.
LG Jens
1. Februar 2009 um 23:43
Danke, Frank - wieder mal ein genialer Tipp, und wieder ein (potentielles) Plugin gespart. Wird bei mir eingebaut
Herzliche Grüße, Dave
1. Februar 2009 um 23:45
Leider funktioniert das nicht in meinem Blog. Mein Provider würde das (irgendwas?) nicht erlauben. Ich weiß nur nicht was und wie ich es ändern könnte bzw. nach was ich meinen Provider fragen müsste was er nicht erlaubt *g*
Kannst du mir da weiter helfen?
1. Februar 2009 um 23:49
Ich habe mich auch schon sehr oft gefragt wieso man für solch klitzekleine Dinge ein ganzes Plugin nimmt. Man muss es updaten und wenn es ein Sicherheitsrisiko beinhaltet hat man noch ein Loch in WordPress.
Schön das du zeigst wie es auch anders geht
Ich habe zum ähnlichen Thema mal ein wenig Code veröffentlicht: Link zum Beitrag
lg
Jared
2. Februar 2009 um 00:18
cool, mal wieder ein guter tip, danke. ich sehe twitter ja etwas mit gemischten gefühlen.. (s.a. lumma.de/2009/02/01/kurze-geschichte-der-microbloggerei/)
btw: wo kann man eigentlich wordpress irgendwo dazu bringen, lieber is_404() zu nehmen statt der wilkürlichen artikelübersicht bei eingabe einer falschen url..?
2. Februar 2009 um 05:58
Die Plugins (bzw. das, was ich auf Apfelquak nutze) haben jedoch den Vorteil, dass sie die URL gleich dabei kürzen (TinyURL usw.). Wer das nicht braucht, hat mit deiner Lösung natürlich ein Plugin weniger.
2. Februar 2009 um 10:36
Wäre schön, wenn du meinen Kommentar auch freischalten würdest. (...siehe Ad in den Kommentaren...)
2. Februar 2009 um 10:39
@ad: ich beantworte die Kommentare immer erst, bevor ich frei schalte. Die Aktualisierung des Beitrag ist eben fertig gestellt und du warst wie immer schneller als mein Schwenk auf die Kommentare. Aber eventuell hat dein Hinweis nun den Beitrag verbessert - eigentlich sollte es ja nur ein einfacher kleiner Hinweis sein und nun sind es doch wieder mehr als 140 Zeichen
2. Februar 2009 um 10:42
@anne: dazu muss man lediglich im Theme ein Template mit dem Dateinamen 404.php hinterlegen - dort kommt dann der Inhalt rein, der in der Error-Ausgabe gezeigt werden soll. Im Basis-Theme ist dazu ein Beispiel, welches auch einiges mehr kann.
2. Februar 2009 um 10:43
@Antje: am Provider sollte das nicht liegen, es ist ja im Grunde pur HTML + das Erstellen des Link aus WP. Kannst du denn im Standard Permalinks aktivieren?
2. Februar 2009 um 10:44
Hey, das wäre doch mal eine Idee:
Das "Bleib-Locker-Admin-ist-hier-noch-am-rödeln"-Plugin!
(so mit gelber Rundum-Leuchte)
Schönen Dank für's Aktualisieren. Ich geh das jetzt mal auf Apfelquak testen.
2. Februar 2009 um 10:46
@ad:
schöne Idee; ist auch möglich, da WP den Status ja zurück gibt, wenn ein Beitrag in Arbeit ist. Eventuell ist es aber etwas oversized und passt aktuell leider gar nicht in meinen Zeitplan.
2. Februar 2009 um 11:18
Grade deinen aktualisierten Artikel gelesen - du sprichst die URL Kodierung zwar an, aber wäre es nicht besser das Beispiel gleich mit URL Encode zu zeigen, anstatt der Methode %20 ? Oder gibt es Nachteile die ich nicht kenne?
Nur als Hinweis
2. Februar 2009 um 11:26
@Jared: nein, keine Nachteile, außer den zusätzlichen Aufruf einer PHP-Funktion. Natürlich kann man das via Funkion sauber halten und ich werde es wohl nachschieben. Habe gerade auch mal deinen Beitrag gelesen und der macht ja genau das. Wenn das weiter so geht, dann wird es Protokoll und kein Beitrag
2. Februar 2009 um 11:37
Ach dem suchendem User werden hier genügend Methoden aufgezeigt, das ist doch das wichtigste
darf ich deine Funktion für tinyurl auch in meinen Beitrag packen mit einem Link zu dir? Oder einen kleinen ergänzenden Beitrag schreiben?
2. Februar 2009 um 11:54
Kann ich bestimmt - allerdings habe ich meine Permalinks auf Tag & Name eingestellt und möchte das auch nicht ändern. Bei mir funktionierten die Plugins "Tweet this" und "Tweetback" nicht - es wurden keine URLs generiert und ich bekam eine Fehlermeldung.
Leider fand ich niemanden der mir weiter helfen konnte
Weißt du vielleicht Rat?
2. Februar 2009 um 11:57
@Jared: aber sicher, GNU und feel free. Außerdem sind wir beide doch mittlerweile so nahe, dass das selbstverständlich ist. Sehen wir uns eigentlich am Freitag in Jena zum WordCamp?
2. Februar 2009 um 12:03
@Frank
Lieber einmal mehr nachfragen als später so einen Hype wie um Jean
aber ich weiß es zu schätzen.
Bezüglich WordCamp:
Ich habe drüber nachgedacht schon Freitag zu kommen, aber ich muss bis 18 Uhr arbeiten und da ich von Samstag bis Sonntag weg bin, gehört der Abend davor meiner besseren Hälfte. Ich reise Samstag früh an, sehen uns dann bestimmt auf einer Session
Du gibst leider keine?
2. Februar 2009 um 12:06
@Antje: dein Webspace läßt die Funktion nicht zu. Du kannst mal versuchen die ini zu ändern:
ini_set("allow_url_fopen","1");in die functions.php schreiben und dann schauen, ob es geht. Man kann alternativ natürlich auch die Funktion durch eine eigene ersetzen, aber es wird immer das eine oder andere Problem auftauchen und ich vermute mal anhand deiner Kenntnisse aus dem Beitrag von dir, dass du nicht ständig PHP codest. Ansonsten könnte man die Funktion vielleicht damit ersetzen:function get_remote_file($url) { if (ini_get('allow_url_fopen')) { return file_get_contents($url); } elseif (function_exists('curl_init')) { $c = curl_init($url); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_HEADER, 0); $file = curl_exec($c); curl_close($c); return $file; } else { die('Error'); } }2. Februar 2009 um 12:11
@Jared: nein, ich gebe diesmal keine, was aber leider an meinem sehr engen Zeitplan liegt. Ich bin nur am Morgen des Samstag vor Ort und muss dann dringend auf die Autobahn. Aber manchmal sind Termine einfach nicht zu schieben, auch nicht wenn man beiden Termine selber mit verantwortet.
2. Februar 2009 um 12:12
@frank: danke für den hinweis, das template hab ich, ich weiss nur nicht, wo ich in den functions (?) ändere, dass eben bei fehlender seite (bzw vertippter url) nicht mehr diese willkürliche liste aller möglichen artikel geladen wird, sondern eben die 404??
2. Februar 2009 um 12:20
"nicht ständig" ROFL "gar nicht" oder "noch nie" passt eher
Okay danke das du dir Gedanken drum gemacht hast - leider ist mir das zu hoch
Deshalb wird das halt nichts mit dem Tweet this.
2. Februar 2009 um 12:26
@anne: dazu muss der Inhalt des Template angepasst werden, ich vermute, dass du nur einfach den Loop von WP drin hast und daher kommt nix. Alle anderen Ausgaben müssen direkt im Template erstellt werden.
2. Februar 2009 um 12:28
@Antje: aber die eine Zeile
ini_setkann doch sicher mal in diefunctions.phpdeines Themes und dann nochmal testen?2. Februar 2009 um 12:39
In der functions.php meines Themes steht nichts mit ini_set
2. Februar 2009 um 13:14
@Antje: eben, daher soll es ja rein. Das muss in die
functions.php:ini_set("allow_url_fopen","1");2. Februar 2009 um 13:21
Klappt super - wie immer: ganz lieben Dank. So kleine Spielereien *rocken*.
2. Februar 2009 um 13:38
*räusper*peinlich*
Und das soll ich da einfach so - irgendwo - reinkopieren? Am Anfang, Ende, zwischen irgendwas besonderes?
*schäm*
2. Februar 2009 um 13:43
Hey, danke fürs verlinken!
2. Februar 2009 um 15:38
Also ich habe mich einfach getraut und es irgendwo rein kopiert und nach anfänglichen Fehlermeldungen die ich noch sah - scheint es zu funktionieren. Jedenfalls hat sich noch kein anderer beschwert *g*
Danke!
2. Februar 2009 um 16:50
Hmm, danke, hatte ich zwar auch mal beschrieben:
http://tinyurl.com/8ynlz9, aber bei dir hast du noch das mit twitter erklärt, dass ich nicht gemacht habe.Den Twitter API finde ich echt gut, und benutze dies auch selber
2. Februar 2009 um 16:52
Ah stimmt, hier:
http://tinyurl.com/a53fwfwo ich den twitter API benutzt habe2. Februar 2009 um 17:28
@Renè: ich danke für den Code!
2. Februar 2009 um 23:18
Danke für solche Beiträge.... Danke Danke Danke
4. Februar 2009 um 00:15
entschuldigung für den nochmals themafremden post: ich habe rausgefunden, dass meine wordpress installation nur dann korrekt eine 404 seite ausgibt, wenn die permalinks auf standard und nicht auf datum und titel stehen. kann man das korrigieren..?
4. Februar 2009 um 07:48
@anne: das sollte egal sein, der Permalink ist eigentlich ja nur ein redirect und die Struktur ist egal. Wenn du die einfach änderst, dann treten Probleme mit verlinkten Seiten und Suchmaschinen auf, dass muss gut überlegt sein und sollte mit diversen Redirects abgefangen werden.
Auf deinem Weblog klappt die 404 auch, nur die Aussage ist dürftig. Eventuell hast du das Problem aber auch an anderer Stelle.
4. Februar 2009 um 17:15
ja, sollte es wohl, bei meinem eigenen blog is das auch ok, aber bei dem anderen projekt geht es nur mit standard permalinks. wenn ich was anderes anklicke im admin, dann kommt statt der fehlermeldung eine unendlich liste mit allen möglichen inhalten (seiten) hintereinander weg ?
4. Februar 2009 um 19:25
@anne: das klingt nach Fehlersuche, weil der Zusammenhang ja nicht nur aus dem Code hier kommen kann. Es muss also mit den Permalinks zusammen hängen und dazu müsste man mal all die Fehler analysieren.
5. Februar 2009 um 07:30
Genial, vielen Dank!
Ich lerne die functions.php immer mehr zu schätzen.
7. Februar 2009 um 22:47
super, danke sehr! werde mir das plugin demnächst sparen...
22. Februar 2009 um 17:15
Danke. Das erspart mir auch gleich ein Plugin. Ich würde aber gerne als Text noch den Posttitel übergeben. Wie geht das? (the_title(); geht, so wie ich das sehe, ja nicht...)
22. Februar 2009 um 19:27
@Dave: ja, aber entweder mit
get_the_title()oder dasechomitthe_title()auffalsesetzen,the_title('', '', false).22. Februar 2009 um 19:39
@Frank: Danke. Nun stehe ich vor dem nächsten Problem, weil bei mir "fopen" nicht läuft... Tipps?
22. Februar 2009 um 19:55
...Kommentartipp oben hat auch nicht geholfen...
26. Februar 2009 um 14:58
Frank, sonst könnte man deine Funktion um eine weitere Abfrage (vor dem curl-Part) erweitern:
} elseif (function_exists('wp_remote_get')) { $response = wp_remote_get($url); return wp_remote_retrieve_response_code(&$response); }Ab WP 2.7.0 verfügbar und hat den Vorteil, dass die Funktion zahlreiche Techniken anwenden kann, um an den Content ran zu kommen.
26. Februar 2009 um 15:16
@Segej: habe ich auch schon bei mir im Einsatz, weil mir die Funktion die Tage unterkam. Danke für die sinnvolle Ergänzung.
10. März 2009 um 00:16
Die Snippets sind wie immer einfach und wirkungsvoll. Lässt sich gut mit dem Twitter-Referrer-Check kombinieren.
Die Funktion wp_remote_get kannte ich auch noch nicht. Danke für den Hinweis. Hab sonst "CURL Extension Emulation Library" verwendet, weil mein Webspace noch nicht mal CURL erlaubte.
20. März 2009 um 10:20
Also irgendwie hab ich diese ganze Hype um Twitter nicht so wirklich verstanden, aber entziehen kann man sich dem wohl kaum. Die Sache mit dem Plugin für Wordpress schein aber eine richtig gute Sache zu sein. Wenn schon (fast) jeder twittert, warum dann nicht auch Blog Beiträge automatisch nicht nur Pingen sondern auch gleich twittern
Jetzt fehlt nur noch ein Plugin die Beiträge noch an einschlägige Social Bookmark Dienste automatisch zu melden...Ähmm gibts es sowas auch?
Aporops social Bookmark Dienste....Bei Mister Wong läßt sich jetzt auch twittern...nu übertreiben sie aber.. *lach*
27. April 2009 um 13:29
Wenn man seine Postings in aussagekräftig benannte und nicht zu viele Kategorien einordnet, kann man den Hinweistweets sogar Hashtags vorschlagen, indem man sie mittels
foreach((get_the_category()) as $category) { echo urlencode(' #') . $category->cat_name; }an den Permalink anhängt.
12. Juni 2009 um 17:01
Seit 2.8 funktioniert es leider nicht mehr. Noch jemand mit der Erfahrung? Frank?
12. Juni 2009 um 21:11
@ad: funktioniert bei mir tadellos; 2.8 fahre ich ja schon lange; ging in der Beta und nun auch in der Release Version
12. Juni 2009 um 21:36
Geht wieder. Anscheinend war es ein Problem bei Twitter. Danke für's Feedback!
30. Juni 2009 um 22:19
Hi,
ich hab zu dem Ding nen Plugin geschrieben, welches die gekürzte URL im Cache speichert und so vermeidet, dass diese bei jedem Aufruf der Seite neu generiert wird (und somit das Laden der Seite verlangsamt):
Plugin Page öffnen oder im Wordpress Codex anschauen.
Gruß,
Hendrik (twitter: @jhmjacob)
6. Oktober 2009 um 08:53
Plugins, die automatisch Artikel auf einen Twitteraccount schicken, gibt es viele. Einige gestatten die Auswahl von Artikeln nach bestimmten Kategorien von WP. Aber nach einer scheinbar naheliegenden Lösung suche ich seit Wochen vergebens: Ein Plugin, dass aus bestimmten Kategorien eines einzigen WP-Blogs mehrere Twitteraccounts beliefert. Bin ich der einzige, der so was braucht?
Mein unendlicher Dank ist dem gewiss, der sowas kennt. Bin auch bereit, mir ein Kostenangebot unterbreiten zu lassen.
Beste Grüße
6. Oktober 2009 um 09:03
@Jürgen: ich würde das sicher eher mit
http://twitterfeed.com/umsetzen, da sparst du dir die Ressource auf deinem Server.14. Dezember 2009 um 00:06
Plugins, die automatisch Artikel auf einen Twitteraccount schicken, gibt es viele. Einige gestatten die Auswahl von Artikeln nach bestimmten Kategorien von WP. Aber nach einer scheinbar naheliegenden Lösung suche ich seit Wochen vergebens: Ein Plugin, dass aus bestimmten Kategorien eines einzigen WP-Blogs mehrere Twitteraccounts beliefert. Bin ich der einzige, der so was braucht?
Mein unendlicher Dank ist dem gewiss, der sowas kennt. Bin auch bereit, mir ein Kostenangebot unterbreiten zu lassen.
14. Dezember 2009 um 23:22
Frank: Danke für den Tipp mit Twitterfeed. Scheint keine schlechte Sache zu sein, wenn man mit einer Kategorie startet, aber über den Weg holt man sich nicht die Artikel in den Twitteraccout, die schon älter sind.
Also bleib ich dabei. Nichtsahnend wie ich bin, frage ich mich, warum kriegt denn niemand ein Plugin hin, mit dem ich Artikel aus verschiedenen Kategorien eines Blogs an unterschiedliche Twitteraccounts liefern kann?
15. Dezember 2009 um 08:48
@Jürgen: eventuell hatte noch kein Entwickler die Anforderung bzw. keine Zeit für so ein Plugin 4free.