Nach dem Tweet Button ist jetzt auch der Facebook Share Button wieder in mein neues Theme eingezogen. Beide hatte ich beim Redesign erst einmal deaktiviert, da mir auch nicht wirklich gefallen hat, dass sie nicht W3C valide waren. Um den validen Tweet Button hatte ich mich gestern gekümmert und heute stand nun der Facebook Share Button auf dem Programm. Dabei ist mir aufgefallen, dass das Javascript, das meist mit dem Facebook Share Button einhergeht, auch ganz einfach weggelassen werden kann.
Warum ein Javascript verwenden, das, mit ein paar wenigen manuellen Umbauten, eigentlich gar nicht benötigt wird? Anstatt des Fensters direkt bei mir auf der Seite geht nun ein neues Browserfenster auf. Das ist das einzige, was sich ohne Javascript für meine Leser ändert, wenn sie auf den Facebook Share Button klicken.
Für mich hat es den Vorteil, dass ein Javascript weniger bei mir auf dem Blog läuft. Da das Javascript auch den Facebook Share Button selbst holt, musste ich beim Einbau auf einen manuell erstellten und bei mir auf dem Server gespeicherten Button zurückgreifen. Auch kein großes Problem.
Aber sehen wir uns erst einmal den originalen Code für Facebook Share Button an:
<a name="fb_share" type="button" share_url="<?php the_permalink();?>" href="http://www.facebook.com/sharer.php">Teilen</a>
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>
Dieser Code ist nicht W3C valide, der W3C Validator meckert die share_url an there is no attribute "share_url". Das ist aber kein größeres Problem, es kann wie folgt abgeändert werden:
<a name="fb_share" type="button" href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title();?>">Teilen</a>
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>
Damit wäre der Facebook Share Button schon mal W3C valide.
Nun gibt es aber noch die Möglichkeit das Javascript wegzulassen und stattdessen ein eigenes Bild für den Facebook Share Button zu verwenden. Hier sind der Kreativität natürlich keine Grenzen gesetzt. Also den eigenen Facebook Share Button erstellen, auf dem Server in den Theme Ordner speichern und dann kommt folgender Code zum Einsatz:
<a name="fb_share" type="button" href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title();?>" rel="nofollow" target="_blank"><img src="<?php bloginfo('template_url')?>/DEINBILD.JPG" alt="Facebook Share" /></a>
Der Teil DEINBILD.JPG muss natürlich entsprechend mit dem Namen der eigenen Datei ersetzt werden. Wer den eigenen Facebook Share Button nicht im Theme Ordner speichert sollte den gesamten Teil <?php bloginfo('template_url')?>/DEINBILD.JPG" anpassen. Ich verwende hier die WordPress Funktion Bloginfo, die auch mit anderen Parametern bestückt werden kann oder gänzlich mit einer eigenen URL ersetzt werden kann.
Weiter habe ich in den Code oben noch ein target="_blank" eingefügt, denn ich möchte ja nicht, dass sich die Facebook Seite statt meiner Seite öffnet. Und das Attribut rel="nofollow" habe ich auch noch dazu gepackt.
Da auch die Facebook Like Box aus meiner Sidebar rausgeflogen ist und in meinem neuen Theme nicht mehr zum Einsatz kommt, habe ich neben dem Tweet, dem Facebook Share und dem Feedburner Count Button noch einen einfachen Button, der auf meine Fanseite führt, integriert. Das reicht an Facebook Integration in meinem Blog. Wer Gefällt mir oder was auch immer für Facebook Aktionen durchführen möchte, der kann dies direkt bei Facebook tun.
[...] behalten und nicht selber Hand angelegt. Den Facebook-”Teilen-Button” habe ich nach Tanjas Anleitung eingebaut. Hierfür hatte ich auch noch kein Plugin gefunden, das eine valide Anzeige [...]
[...] Facebook Share Button ohne Javascript und W3C valide [...]
[...] Facebook Share Button ohne Javascript und W3C valide [...]
[...] Es gibt auch andere Möglichkeiten nen Facebook Button [...]
[...] Facebook Share Button ohne Javascript und W3C valide [...]
[...] noch den “Teilen” Button von Facebook benutzt findet auf der Seite von Tanja auch noch ein praktischen Tutorial, wie man denn auch valide [...]
In Google Chrome überlagert der Share-Button den Zähler des Twitter-Buttons, und vor dem Fanseite-Button kommt ein Zeilenumbruch. Und diesmal hab ich den Cache geleert…
In Firefox, Opera und IE8 schauts gut aus
Ach so: Für
target="_blank"kann man auch hervorragendrel="external"verwenden. Klappt bei mir einwandfrei, und ist valide.@Markus: Ist mir gerade wurscht, wenn dieser komische Google Chrome Browser sich nicht an die Vorgaben hält. Die Programmierung ist richtig, das zeigt ja vor allem auch schon, dass alle anderen Browser sich daran halten. Wenn Google Chrome meint ein Eigenleben alla IE6 zu entwickeln… bitteschön
Vorsicht Tanja… ich habe schon einen Chrome-Anteil von +10%
Aber zur Sache! Jetzt komme ich wieder ans grübeln. Nicht direkt wegen W3C, sondern mehr wegen einem Vergleich FB-Like vs. FB-Share.
)
Völlig subjektiv hatte ich den Eindruck, dass “Like” öfters mal geklickt wird… Aber dieser Code hier könnte mich wieder umstimmen!
Hach, solche Entscheidungen sind schwiiiiierig
@Marc: Wenns der einzige Browser ist, der so einen “Krampf” macht… rentiert sich nicht wirklich 90% der Leute eine dicke Lücke zwischen den Buttons zu präsentieren, nur damit es für 10% nicht überlappt. Aber grad egal, wenn ich mal Zeit und Lust habe, dann werde ich mich diesem via Safari-Hack widmen. Sieht aber gar nicht mal so übel aus
Ich hab übrigens auch lange hin und her überlegt und mich dann doch für den Facebook Share Button entschieden. Die Nachteile von Like bezüglich was Facebook hier auf dem Blog dann so treibt, sind nicht von der Hand zu weisen.
@Markus: Aktualisiere bitte mal und schau nach, ob es jetzt im Chrome passt. Im Safari hat es jetzt hin und angeblich sprechen beiden auf den gleichen CSS Hack an
@Tanja – ich schlafe mal eine Nacht über share like… vielleicht nehme ich erstmal beides, lach…
Der 2Fanseite”-Button ist übrigens hübsch, ist der offiziell? Darf ich mir den klauen
?
@Marc: Der ist gar nicht offiziell *lacht*. Hab ich selbst zusammen gebastelt. Kannst Du Dir aber gerne nehmen
An “beides” hatte ich übrigens auch erst gedacht, hatte es sogar schon nebeneinander, aber dann fand ich das doch blöd… doppelt gemoppelt hält meist auch nicht besser und mich stattdessen für den Fanseite Button entschieden.
Hey, vielen Dank für den Artikel! Es hat mich schon immer gestört, dass die Facebook-Elemente nicht W3C-valide sind, zumal meine Seite zur Zeit ohne XHTML auskommt.
Gibt es so einen Workaround auch für den Gefällt-mir-Button mit dem Zähler daneben? Mich nerven die ganzen Dateien (Skripte, Stylesheets), die Facebook da im Hintergrund lädt. Wenn da jemand einen Vorschlag hätte, wäre das klasse.
Apropos Chrome: Spontan hätte ich gesagt, dass ich viele Chrome-Besucher habe. Sind aber in Wirklichkeit nur 3 %, und die meisten benutzen nicht die aktuellste Version.
Jetzt passts in Chrome, gefällt mir.
Obwohl ich keinen Facebook-Account (mehr) habe, bin ich eben dabei, den Share-Button bei mir auch einzubauen. Der sitzt nur ein paar Pixel zu hoch bei mir…
@hagelberger: Dieses ganze “Gefällt mir” Zeugs kommt mir nicht mehr auf den Blog, weswegen ich auch keine Workarounds dafür habe
@Markus: Gut zu wissen, dass es passt und auch dass dieser Browser wirklich auf die Safari Hacks anspricht

Ich habe zwar noch einen Facebook Account, doch ehrlich gesagt logge ich mich dort nie ein, ich werde so ganz und gar nicht warm mit diesem Service. Aber meinen Usern, die davon begeistert sind, will ich das Ganze nicht komplett vorenthalten, deswegen diese Buttons
Wenn der Button zu hoch sitzt, dann zieh ihn mit CSS doch einfach etwas weiter runter (margin-top oder padding-top).
VIelen Dank mal wieder,
jetzt muss ich nur noch abwägen, ob ich “like” oder “share” einsetzen werde/sollte
@maTTes: Bei Dir hätte ich jetzt auf “share” getippt, gerade da Du ja auf der Suche nach einer ganz einfache Integration warst
“like” bekommst Du nur mit dem ganzen Bremborium herum…
Zuerst einmal knuddeln weil ich solange nicht da war und dann…
Tja hätte ich gerne so einen Button auch den mit Tewitter und “gefällt mir” usw.
Aber da du meine technische Begabung kennst*gg*
Wird mein Blog wohl ohne diverse Buttons auskommen müssen…
@Markus
Das rel=”external” alleine genügt nicht, dass ein Link in einem externen Fenster aufgeht. Dazu bedarf es noch ein kleiner JS Code, welcher die Umleitung dann auch wirklich macht. In WordPress funktioniert dies, da der Java Code integriert ist.
Der Code onclick=”window.open(this.href,’_blank’);return false;” macht genau das gleiche, funktioniert auch auf nicht WP Seiten.
Also generell gesaggt rel=”external” öffnet den Link in einem neuen Fenster/Tab ist falsch, was die meisten aus der Aussage interpretieren. Das es bei WP funzt ist aber korrekt und W3C konform und empfehlenswert.
@Stefan: Danke für die Aufklärung
Ah ja, auch hier wieder das & durch amp ersetzen. Danke dir und dem Validator
Ich pack erstmal beides rein bei mir
@Arven: *knuddel* – soll ich Dir die zwei Buttons so wie ich sie habe kurz einbauen in Dein Theme? Sag einfach Bescheid
@Stefan: Danke
@maTTes: ja, die leidige Geschichte… aber der Validator meckert ja eh und egal wie ich es im Code versuche zu schreiben, das wird immer geschluckt
So, bei mir ist es nun endlich im neuen (und veröffentlichten) Theme eingebaut.
@maTTes: Hab gerade gekuckt, sieht schön aus
Hallo Tanja,
ich habe Deinen Teilen-Button bereits im Einsatz und freue ich über die Validität. Ein wenig hatte mir allerdings die Zählfunktion gefehlt. Daher habe ich Dein Script um eine Kleinigkeit ergänzt.
Den Code type=”button” habe ich nun noch durch type=”button_count” ersetzt und nun wird zusätzlich noch die Anzahl der geteilten Links auf Facebook angezeigt.
Lieben Gruß
Sylvi
@Sylvi: Ja, es gibt ja einige unterschiedliche Button Versionen, die natürlich nach Geschmack genutzt werden können.
Perfekt, habe das gerade in meinem FB-Share-Plugin umgesetzt. Jetzt ist wieder alles valide. Danke dafür!
@Kalliey: Supi, dann passt es ja jetzt auch mit der Validität
Ich bin ja auch auf der Suche nach einer Möglichkeit, einen eigenen Sharebutton ohne Plugin bereitzustellen. Deine Codeschnipsel ist daher schon mal prima.
Was mich jetzt aber noch interessiert: Kann man das irgendwie so gestalten, dass sich das Fenster nach dem Informieren wieder schließt? Bei der jetzigen Version muss der Nutzer selbst immer auf X klicken. Ist natürlich Mehraufwand, dem ich ihm ersparen möchte — sowie das ja bspw. auch bei den via IFrame integrierbaren Buttons funktioniert.
Außerdem ist mir aufgefallen, dass man am Ende zwar wieder zur Anmeldeseite umgeleitet wird, sodass es so aussieht, als sei man ordentlich ausgeloggt, aber wenn man dann mal auf das Facebookzeichen klickt, stellt man fest, dass man immer noch eingeloggt ist. :S Ist das noch jemandem passiert?
Äh, ich meine nicht “informieren”, sondern “teilen”. ^^
@Ali Schwarzer: Wenn Du in diesem Bereich etwas ändern willst, dann müsstest Du direkt in die Funktion eingreifen, die Facebook zur Verfügung stellt. Also ist eigentlich ein “no way” die Antwort, oder Du programmierst was eigenes, falls Facebook das zulässt.
Übers selber programmieren reden wir dann in ein paar Jahren, wenn ich dann eine leise Ahnung davon habe, wie man überhaupt programmiert. ^^
Nice to know: Mir ist aufgefallen, dass sich das Facebookfenster zwar nicht schließt, wenn man sich erst anmelden muss, aber das geht sehr wohl zu, wenn man eh schon parallel eingeloggt war. oO
Sollte man
the_permalink()
nicht in
echo urlencode(the_permalink())
ändern und auf die selbe Weise auch mit dem title verfahren? Sieth mir sauberer aus, lasse mich aber gerne eines besseren belehren.
@Tim: Bis dato gab es ohne keine Probleme
Hallo!
hast du denn code auch als like??
Danke erstmal für diesen tollen Code! Habe ich echt überall gesucht!! (ich bin technisch nicht so fit wie du). es ging mir halt darum ein eigenes Bild einzubauen, das hat jetzt auch super geklappt, NUR hätte ich das gerne als LIKE und nicht als SHARE
viele Grüße
Isa
@Isi: Ne, sorry, mit Like arbeite ich nirgends, da habe ich keine Lösung dafür.