Flattr Button für WordPress ohne Plugin

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.

Kommentare

  
  1. Enno sagt:

    Als Laie, der die Tiefen eines Plugins nicht nachvollziehen kann, würde mich interessieren, warum dir das Plugin nicht zusagt. Es ist natürlich "leichter" ein Plugin zu installieren, als am Code zu basteln. Wenn es aber gute Gründe gäbe, mache ich das meist. Welche Gründe haben dich bewogen, auf das Plugin zu verzichten? Danke!

    • @Enno: das plugin bringt einen gewissen Overhead mit, den ich nicht brauche; trotzdem stellt es nicht die Flexibilität dar, die ich erwarten würde. Die Daten werden nur einmal gesetzt, dazu muss ich kein Plugin haben, ebenso gefällt mir die Integration nicht, es werden Filter deaktiviert und mit eigenen Filtern aufgewertet um den Button dem Content anzuhängen. Ein Plugin ist dann sinnvoll, wenn es die Flexibilität mitbringt, die ich bereits in den Ausführungen dieses Beitrags angedeutet habe, hier liegt die Stärke und wird aktuell nicht genutzt.

  2. Enno sagt:

    Danke für die Antwort!

  3. Matt sagt:

    Grad mal eingebaut, weil mir vor allem die Option, den Button für einzelne Posts zu deaktivieren, gefällt, aber:
    Sobald ich das Original-Plugin deaktiviere bekomme ich immer die großen Buttons, es wird bei Beiträgen, die bereits geflattred sind, auch 0 angezeigt und auf manchen single.php habe ich einen Error-Button.
    Aktiviere ich das Plugin wieder ist alles gut - aber eigentlch wollte ich mir das Plugin dadurch ja sparen...

    • @Matt: die Größe des Button wird über den Parameter $btn übergeben, hier sollte compact rein, für einen kleineren Button. Kann ich mir dein Problem ansehen?

  4. Matt sagt:

    Das weiß ich, dass da compact rein muss (ist ja auch der default). So lange das Originalplugin aktiv ist geht alles, auch der compact-Button. Deaktiviere ich das Plugin kommen die beschriebenen Fehler.
    Natürlich kannst du dir das Problem ansehen, was brauchst du?

    • @Matt: am besten Zugang als Admin und Rechte 666 auf die functions.php und single.php; alles andere erkläre ich dann via Mail. Es ist nur meist einfacher, als via Kommentarfunktion zu raten.

  5. Matt sagt:

    Du hast Post 🙂

  6. cimddwc sagt:

    Als Flattr-Anfänger würde mich interessieren: Wird durch die ganzen flattr_*-Variablen der Beitrag dann auch automatisch als "Thing" bei Flattr registriert?

    Bisher hab ich bei mir 2 Beiträge manuell registriert und dafür den Javascript-Code, den Flattr dann anzeigt, eingebaut (dieser enthält nur var flattr_url) und für alle anderen einen allgemeinen Button fürs ganze Blog, aber wenn deine Lösung gleich (beim ersten Aufruf) das "submit" mit erledigt, wäre das natürlich deutlich praktischer...

    • @cimddwc: ja, der Button enthält alle Infos: ID von Flattr, Titel, Link, Beschreibung und Tags und wenn jemand klickt, werden die Daten dort genutzt.

  7. matthias sagt:

    Coole Sache und hat definitiv mehr Möglichkeiten als das Plugin.
    Mir sagt es persönlich momentan aber noch nicht zu, dass ich die Inhalte immer von flattr einbinden muss und den Button nicht selber auf dem Server vorhalten kann. Momentan kann man zwar den Button selber speichern, aber dann hat man nur einen statischen Button, der nicht anzeigt wie oft der Beitrag schon geflattred wurde und es wird auch nicht automatisch ein neues "thing" in flattr angelegt.

    Hast du vor, dazu auch ne eigene Lösung zu basteln, das eben die Sachen lokal auf dem Server generiert werden und nicht von flattr.com bezogen werden?

    Die API steht aber leider ja momentan noch nicht zur Verfügung.

  8. Daniel sagt:

    Schöner Beitrag. Wegen dir werd ich mich mal bei Flattr anmelden und die erste Spende geben (testhalber) 😉

  9. jens sagt:

    Hi. Klingt super. Button taucht auch auf, jedoch zerschießt dein "Plugin" genauso wie das Flattr-Wordpress-Plgin irgendwie meinen RSS-Feed. Ich vermute, dass das aber eher an Flattr liegt und nicht an dir, da das Problem schon seit einigen Versionen existiert und die Flattr-Leute das nicht in den Griff kriegen. Ein einfaches deaktivieren des Plugins hilft da direkt weiter...

    • @jens: kann nicht sein, da nicht im Feed verändert wird, der bleibt unangetastet. Das JS kommt nur dort rein, wo du die Funktion ablegst.

  10. Ich nehm alles zurück. Ich muss irgendwo anders einen Fehler gemacht haben. Jetzt funktioniert es. Perfekt. Danke! Flattered 🙂

  11. Heiko [egoo.de] sagt:

    Super, hatte sowieso gerade Probleme mit dem Plugin, da kam dein Beitrag gerade richtig. Hab ich natürlich auch gleich geflattert.

    Aber noch eine Frage. Wenn man den Button über deine Funktion in einen älteren Blog integriert wird der Button logischweise auch in "uralten" Beiträgen angezeigt dei garnicht bei flattr gelistet sind. Dadurch gibt es ein "Error" im Button. Kann dies vielleicht noch hübscher lösen? Hab die API schon mal kurz überflogen aber keine Möglichkeit gefunden.

    • @Heiko: ist die Url nochmal im Namen, dann fliegt der Kommentar wegen Spam! Du könntest if ( !$noflattr ) das ! raus nehmen und deine Beiträge explizit mit dem Custom Field befüllen, dann ist er nur da, wo das Custom Field auf 1 ist.

  12. ralf sagt:

    @ Frank
    Vielen Dank für diesen interessanten Artikel. Derzeit habe ich noch das WP Flattr Plugin eingebunden, möchte aber deine Lösung einmal testen. Was ich in obigem Code als laie nicht ganz verstehe ... wo müssen die Ziffern der Flattr USER-ID eingegeben werden?

    Sry 4 Doublepost, habe aber eben erst den Artikel Realname, Nickname oder was? gelesen

    • @ralf: in dem Aufruf der Funktion, also im Template gibst du die ID dem Parameter $uid mit, also: <?php if ( function_exists('fb_flattr_link') ) fb_flattr_link($uid = 'DEINE_UID'); ?>

  13. xeniCds sagt:

    Ansich eine schöne Sache und hat nach einigen Schwierigkeiten (u.a. mit Super Cache) auch mit dem Einbau geklappt. Zumindest nach aussen wirkt alles wie geölt.

    Im Maschinenraum vom WP nun allerdings immer mal wieder nette Warnings die kommen. Folgedes erscheint beim Speichern eines Artikels oder auch, wenn ich versuche Plugins zu (de)aktivieren.

    Warning: Cannot modify header information - headers already sent by (output started at .../blog/wp-content/themes/blocks2/functions.php:590) in .../blog/wp-includes/pluggable.php on line 868

    Sowohl die Artikel werden gespeichert, als auch jegliche Plugsin (de)aktiviert. Blöd nur, wenn ich dann erst wieder zurück gehen muss.

  14. xeniCds sagt:

    Suchte gerade vergebens den 'edit'-Knopf:

    Warning: Cannot modify header information - headers already sent by (output started at /home/www/u11473/html_www.insidesport.de/blog/wp-content/themes/blocks2/functions.php:590) in /home/www/u11473/html_www.insidesport.de/blog/wp-admin/theme-editor.php on line 75

    Beim 'Daten aktualisieren' falls ich in irgendeiner(!) Design-Datei etwas ändere.

    • @xeniCds: was ist denn in der functions.php Zeile 590 versteckt, dass man Probleme hat; sieht mir nach einem unsauberen Theme aus.

  15. Marcel sagt:

    Wenn ich den Flattr-Button auch schon auf der Startseite unter jedem Artikel anzeigen möchte, reicht dann der einmalige Aufruf von http://api.flattr.com/button/load.js am Ende der Seite oder muss er hinter jedem Variablen-Block kommen? Oder wird das ganz anders gemacht?

  16. Max sagt:

    Danke für die Funktion, habe es bei mir auch gleich umgebaut, dass nur die Beiträge mit dem Custom Field den Knopf bekommen, dass hatte ich auch schon bei der Verwendung des Plugins so genutzt. Aber jedes Plugin weniger nervt auch nicht mit Updates. Das war ja beim Flattr-Plugin in den letzten Tagen ja doch öfter dran 😀

  17. Georg sagt:

    Da ich das Plugin nicht benutzen kann (benutze noch WP 2.8) würde ich gerne deine Funktion ausprobieren. Nur ist mir leider nicht ganz klar, wo man die User ID eingeben muss, damit auch auf das Flattr-Konto zugegriffen werden kann.

  18. cimddwc sagt:

    @Marcel/Frank:

    reicht dann der einmalige Aufruf von http://api.flattr.com/button/load.js am Ende der Seite

    Ich bezweifle, dass das reicht – nicht dass ich jetzt jede Zeile von load.js genau verstünde, aber woher soll das Script wissen, welche früheren Variablenblöcke es berücksichtigen muss? Wo doch auch die späteren die früheren Variablenwerte überschreiben. (Aber ich lasse mich da auch gern eines Besseren belehren. 🙂 )

    Ich hab bei mir load.js nach jedem Artikel mit eigenem Variablenblock eingebunden, und es funktioniert anscheinend. (Zumindest solange flattr.com erreichbar ist...) Ein kurzer Test mit einem zusätzlichen Variablenblock hat auch keinen zusätzlichen Button erzeugt.

    • qcimddwc: stimmt; ich habe mir auch nicht angeschaut, was das JS macht, dachte nur an einen globalen Aufruf und die Weitergabe aller Daten, wobei je nach Klick ja die Daten mitgegeben werden. Da hilft also nur versuchen.

  19. Hannes Trapp sagt:

    Danke Dir - gleich eingebaut! Läuft!

  20. Steve sagt:

    super Beitrag und ich hab ihn auch schon geflattert... :o)

    Nur funktionierts bei mir nicht so wirklich.
    Hab den Code am Anfang der functions.php abgelegt, was an sich funktionierte, jedoch dann der Blog auf englisch ausgegeben wurde (pages statt Seiten etc) Weiterhin wurden meine Widgets durcheinandergewürfelt, warum auch immer. (einige von der linken Sidebar waren in der rechten und umgekehrt)

    Nun habe ich es am Ende der functions.php eingesetzt und alles passt soweit... nur hab ich den Button ganz unten in der linken Sidebar. Im Artikel selbst habe ich keinen. Wenn ich die bisherigen Kommentare richtig verstanden habe, so wird es ja auch für bereits bestehende Artikel integriert, oder?

    Gibt es auch eine Möglichkeit, mit einem Code-Schnipsel einen Flattr-Button zusätzlich zum Artikel recht prominent mittels einer Textbox in der sidebar zu platzieren?

    • @Steve: aktuell ist der Code so, dass er zum Beitrag vorhanden sein muss, weil sonst die Zuordnung der Beiträge nicht passt. Wenn man nur einen Flattr-Button für die Domain haben will, da lieber händisch im Account von Flattr erstellen. Dieser gibt ja Daten des Beitrags mit und daher muss erzwingend zum Beitrag angeordnet sein. Wenn du ihn in den Sidebar nimmst, dann geht das, wenn du nur auf einem Beitrag bist, bist du aber auf einem Archiv oder der Startseite, also ohne direkte Zuordnung der Beiträge dann wird immer die URL etc. des letzten Beitrags übergeben. Das Problem in der functions.php schiebe ich auf einen Fehler in der Implementiertung, vermutlich hast du was bei den Widgets zerstört.

  21. tanalahy sagt:

    Mein Problem mit dem WordPress Flattr Plugin war wie folgt: Trotz aller Versprechungen der Coder leerte es mir die excerpt() Funktion, die wichtige Teile meiner Blog darstellen. Die obige Version hingegen tut das nicht. Funktioniert schon gut auf http://www.planet.vaovaoweb.de und deshalb habe ich diesen Artikel auch gerne geflattert.

  22. Steve sagt:

    @Frank: Danke fürs Feedback. 🙂

    Sachverhalt verstanden und das es den Button nicht in alten Beiträgen gibt, ich denke damit kann ich leben. Was ist das dann aber im Moment für ein Button? Wenn ich auf einen Artikel klicke? Er ist in der Sidebar. Mal links, mal rechts (warum auch immer er wechselt). Gehört der zum Artikel? Wenn ja, wie bekomme ich den unter den Artikel und aus der Sidebar raus? Ne Idee?

    Beste Grüsse in die Nachbarschaft... 😉

    • @Steve: das liegt daran, weil du den Flattr-Button unterhalb der div hast, es geht je nach Länge des Beitrags dort hin, wo Platz ist. Du musst den Button innerhalb des div des Beitrags ablegen; oder eben da, wo er hin soll.

  23. Kau-Boy sagt:

    Vielen Dank für den Post. Ich habe die Tage wirklich viel von Flattr und Kachingle gelesen und bisher noch auf keiner mir bekannten Seite einen solchen Button gesehen. Und jetzt präsentierst du uns sogar noch gleich dazu ne Möglichkeit das in unseren eigenen Blog einzubauen!

  24. Dieter sagt:

    schon gelöst - funktioniert! cool.

  25. Georg sagt:

    @Frank: Danke für den Code und danke für deine Hilfe. Klappt nun alles wunderbar 🙂

    Dafür ist auch dein Artikel der erste den ich flattr 😉

  26. Steve sagt:

    @Frank: genau... 🙂 Danke für den Hinweis, nun ist es so wie ich es gern hätte. 🙂 Sogar bei bestehenden Artikeln hab ich jetzt den Button... 😉

  27. Steve sagt:

    eine Nachfrage ist doch noch notwendig: ich habe das doch richtig verstanden, dass neue Beiträge dann auch an Flattr gesandt werden (ausser ich vergebe bei hide eine 1) - richtig?

    Denn leider ist in meinem Flattr-Account der heutige Artikel nicht zu finden... 🙁 Was mache ich falsch?

  28. ad sagt:

    Hach, Frank. Was würden wir nur ohne dich machen? (Nein, keine Ironie)

    Vielen Dank und einen fetten Flattr dafür.

    • @ad: dachte schon, du brauchst das nicht; die Idee kam mir eigentlich ja durch deine Diskussion und die von Robert Basic, der den Button nicht überall haben wollte. Das Plugin hat eine Menge an Themen, die mir nicht gefallen und die Update-Frequenz zeigt das wohl auch - ebenso sollte man man die Ausgabe von PHP-Hinweisen aktivieren, da wird man schnell durch das Plugin erschlagen, was ich sehr schade finde.

  29. Kleine Änderung am Code, bitte mal die Funktion updaten!

  30. ad sagt:

    Ich werde die Lösung mit der ID pro User sicher auf Apfelquak brauchen können. Vielleicht kannst du mir dabei helfen?

  31. Acky sagt:

    Der Einbau hat bei mir auf Anhieb geklappt. Klasse, vielen Dank und ... ge-Flattr-ed! 🙂

  32. dot8 sagt:

    Damit ist ein Einbinden des buttons im RSS feed nicht möglich oder?

  33. Jens sagt:

    Ich hab dann auch mal einen flattr-Account für http://www.laester.TV angelegt und weil ich dir auch mal danken wollte, auch hier direkt geflattr´t !

  34. Ein Tipp für Multiautoren Blogs: Ich wollte je nach Autor mit deiner tollen Idee auch die jeweilige flattrid des Autors in single.php übergeben.
    Mit dem flattr Plugin konnte ich nichts anfangen, weil es das expcerpt Feld auf der Startseite des Blogs umgemoddelt hat. Deine Lösung jedoch funktioniert wunderbar.
    Nur noch die flattr User ID wollte ich zusätzlich dynamisch übergeben, aber gleich aus dem User Profil des Autors und nicht als customized field pro Artikel.
    Nun nutze ich schon das cimy user extra fields plugin.
    Im Autoren Profil habe ich ein zusätzliches Feld angelegt 'USER-FLATTR_ID', dass die flattrid beinhaltet. Das kann bei der Registrierung der Autoren von diesem selbst eingepflegt werden, oder auch später ergänzt.
    In der single php rufe ich nun so auf:


    Der Vorteil dieser ergänzenden Lösung ist, dass sie auch in der Sidebar funktioniert.

    Vielen Dank für deine Idee!

  35. Oliver Rumpf sagt:

    Super Anleitung, hat geklappt.

    Vielen Dank
    Oliver

  36. Jens sagt:

    via functions.php und single.php eingebaut....Super. THX I´v flattred U 😉

  37. Pascal sagt:

    Hallo,

    kleine Frage: Der Button bei mir zwar eingebaut, der Link fehlt aber leider. Woran könnte das liegen? Seite ist die regionews-cw.de

    Hmm... komm da irgendwie nicht weiter... 🙂

    Grüße

  38. Pascal sagt:

    Hallo nochmal Frank,

    jetzt hab ich noch mal ne kleine Frage. Irgendwie hab ich's ja jetzt hingekriegt, dass der Button verlinkt wird, sobald man manuell den Artikel auf Flattr published. Aber eben nur dann.

    Ich dachte, da gäbs einen Automatismus oder sowas - dann hätt sich meine erste Frage schon damals erledigt... ? Oder muss ich jetzt jeden einzelnen immer in Flattr reinpfrimeln?

    PS: Danke für die schnelle Antwort beim letzten Mal, wollt ich noch sagen...

  39. Eberhard sagt:

    Hallo,

    ich habe Dank dieser Anleitung wunderbar hinbekommen, dass bei meinem Multiautoren-Blog jeder Beitrag den entsprechenden Button bekommt. Nun taucht folgendes Problem auf: flattr vergibt keine numerischen IDs mehr.
    Das heißt: Bei allen Autoren, die sich erst jetzt für flattr entschieden haben, wird kein Button ausgegeben.
    Ich habe zwar $uid = (int) $uid; entfernt, doch das änderte nichts.

    Könnte das Problem also an flattr liegen?

    • @Eberhard: kann ich nicht sagen, habe mich seit einige Vorkommnissen bei Flattr nicht mehr damit beschäftigt; wichtig ist natürlich, dass User an einem Flag unterschieden wird.

  40. Chris sagt:

    Hey Frank, danke für dein "Hack". Mir hat das off. Plugin auch nich so zugesagt, nur habe ich dein Code für 2 Blogs genutzt. Funkt sehr gut. Wollte nur mal danke sagen 🙂

  41. Danke, bin erst jetzt auf deinen Betrag gestoßen. Ist genau das was ich gesucht habe und gut brauchen kann ^^

  42. Rene sagt:

    Schade, dass wir den Beitrag nicht früher entdeckt haben, das hätte uns viel weniger Zeit und Nerven gekostet.

© 2016, since 2005 bueltge.de [by:ltge.de] · Theme is built by ThemeShift