Der statische Facebook-Button zählt wieder

Facebook Zähler

Verwundert stellte ich in den letzten Tagen fest, dass der Zähler des statisch eingebundenen Facebook-Buttons unter den letzten Beiträgen durchgehend auf 0 stand. Nur bei dem Top-Beitrag der meistgelesenen Beiträge dieses Blogs zeigt der Zähler artig die Anzahl der Klicks an. Daher nahm ich erst an, der Teilen-Button ist bei meinen Besuchern nicht so beliebt, wie der Twitter– oder Google+-Button.

Aber dann ich konnte mir irgendwie nicht vorstellen, dass keiner der nachfolgenden Beiträge bei Facebook geteilt wurde, vor allem diejenigen nicht, in denen ich mich inhaltlich speziell mit dieser Social Media-Plattform beschäftigt habe.

Und außerdem müsste meiner Ansicht nach mindestens ein Zähler unter den Beiträgen erscheinen, da sie ausnahmslos per dlvr.it automatisiert bei Facebook veröffentlicht werden. Bei Twitter funktioniert das doch auch?!

So googelte ich, las Beiträge über statisch eingebundene Social Media-Buttons mit Beispiel-Codes und bastelte am Script des Zählers herum. Selbst Plugins habe ich entzippt und analysiert, um dem Script für eine korrekten Zähler-Url auf die Spur zu kommen. ;-)

Bis ich auf den Beitrag von Dennis (Link entfernt, da er nicht mehr existiert) stieß. Und genau sein Code ist die Lösung. Er hat in seinem Beitrag wunderbar und Schritt für Schritt erklärt, wie ich vorgehen muss.

Alter Facebook-Button-Code (der nicht mehr zählte

<div class="e-fb">
<a target="popup" onclick="window.open  ('', 'popup', 'width=700,height=450,scrollbars=no, toolbar=no,status=no,resizable=yes,menubar=no,location=no,directories=no,top=50,left=50') "href="https://www.facebook.com/sharer/sharer.php?u=<?php echo urlencode(get_permalink($post->ID)); ?>&t=<?php echo rawurlencode(strip_tags(get_the_title())) ?>" title="Auf Facebook teilen"><img src="<?php bloginfo('template_url')?>/eigene-buttons/facebook2.png" alt="Teilen" style="float:left;width:67px;margin-right:2px;" /></a>
<div class="e-zaehler" style="margin-left:-2px;">
  <?php $URL = get_permalink();
  function get_shares($URL) {
   $json_string = file_get_contents('http://graph.facebook.com/?ids=' . $URL);
   $json = json_decode($json_string, true);
   return intval( $json[$URL]['shares'] );
  } ?>
  <div class="e-zaehler-text"><?php echo get_shares($URL); ?></div>
</div>
</div>

Einbindung von Dennis’ Code zur Darstellung des Buttons mit Zähler

Dennis hat den Code aufgeteilt: einmal die darstellerische und zusätzlich die funktionelle Einbindung in zwei unterschiedliche Dateien. Klingt auf den ersten Blick kompliziert, ist es aber nicht.

Das Script für den Button habe ich wieder in die single.php meines Themes eingefügt und das der Zählfunktion in die functions.php eingebunden.

Button-Code

<div class="e-fb">
<a target="popup" onclick="window.open  ('', 'popup', 'width=700,height=450,scrollbars=no, toolbar=no,status=no,resizable=yes,menubar=no,location=no,directories=no,top=50,left=50') "href="http://www.facebook.com/sharer.php?u=<?php echo urlencode(get_permalink($post->ID)); ?>?t=<?php echo rawurlencode(get_the_title()); ?>" title="Auf Facebook teilen"><img src="<?php bloginfo('template_url')?>/eigene-buttons/facebook2.png" alt="Teilen" style="float:left;width:67px;margin-right:2px;" /></a>
<div class="e-zaehler" style="margin-left:-2px;">
    <div class="e-zaehler-text"><?php echo getFBCount(get_the_ID(), 'total', 1); ?></div>
</div>
</div>

An zwei Stellen habe ich noch das ? gegen &amp;  ausgetauscht, um Validität zu erreichen.

Aus

"href="http://www.facebook.com/sharer.php?u=ID)); ?>&t="

wurde also

"href="http://www.facebook.com/sharer.php&u=ID)); ?>&t="

 

Edit

Nachdem ich noch einmal den Code auf die ursprüngliche Version geändert hatte, wurde dieser plötzlich als valide ausgegeben. Ich werde es weiterhin im Auge behalten.

Zähler-Code

Das Script für die von ihm ertüftelte Zählfunktion konnte ich 1:1 übernehmen und der functions.php meines Themes hinzufügen – perfekt!

Funktioniert hervorragend! Danke Dennis, Du bist heute mein Held. :-D

Die Autorin:

Sylvi

Meine Beiträge beinhalten eigene Erfahrungen über Soft- und Hardware, Social Media und die ich als WordPress-Bloggerin und Joomlanerin gesammelt habe. Zudem widme ich mich dem schönen Hobby "Fotografie".

9 Kommentare

  • Hi.
    Warum setzt du auf die statische Button? Datenschutz?
    Leider haben die statischen Button nicht die Funktion +1 oder Gefällt mir zu klicken, sondern ich kann nur Artikel teilen.
    Es kommt aber ab und zu vor, dass man dem Autor über den Button eine kleine Rückmeldung da lassen will und den Artikel nicht gleich teilen will.

    • Hej Phasenkasper,

      ja einerseits der Datenschutz. Aber auch, mit dieser Lösung auf Javascript verzichten zu können und die Validität.

      Du hast recht, mir fiel es schon schwer, den Gefällt-mir-Button heraus zu nehmen, bei der Plussen-Funktion wiederum nicht so.

      Die “kleine Rückmeldung” können Besucher gerne per Sternebewertung abgeben. Noch lieber ist mir natürlich ein Kommentar. :-D

      Schönen Gruß
      Sylvi

      • Konntest du denn einen Geschwindigkeitsschub feststellen, da es nicht mehr so viel Code ist?
        Die Sterne habe ich total übersehen. Das ist natürlich auch eine Möglichkeit.
        Mit dem Kommentaren kann ich nur zustimmen. Genau deswegen kommentiere ich in letzter Zeit immer öfters.

        • Naja, sagen wir mal so. Ich kämpfe noch ein wenig mit mir, ob ich z. B. das Syntaxhighlight-Plugin behalten soll. Es ist sehr komfortabel und ich poste ja sehr häufig Codes.
          In meinem Testblog habe ich bereits die Codeeingabe manuell ausprobiert, was ich hier momentan nur bei den Kommentaren umgesetzt habe.

          Dieses Plugin enthält sehr viel Javascript und beeinträchtigt schon enorm die Ladezeiten der Seite. Dagegen sind die Scripte der Social Media-Buttons eigentlich Peanuts. Aber trotzdem oder vielleicht gerade deswegen versuche ich eben an anderer Stelle einzusparen.

          Ich habe allerdings kürzlich andere Änderungen hier im Blog vorgenommen (Beitrag ist gerade in der Mache ;-) ) Und habe dadurch schon ziemlich die Performance steigern können. Ich persönlich kann mich zumindest momentan über die Ladezeit meiner Seite nicht beschweren. :-)

          Na siehste, ich finde Kommentare wesentlich kommunikativer als einen Klick auf den +-Button :mrgreen:

          Gruß Sylvi

  • Hi Sylvi,
    meine Share Zahlen bei Facebook sind plötzlich verschwunden. Einige Beitrage wurden mehrere Hundert mal geteilt, jetzt steht überall “0”. War das bei Dir auch so? Und wie bekomme ich die bisherigen Teilungen wieder angezeigt? Weißt Du das zufällig auch? Oder taucht das automatisch wieder auf, wenn man Denis Link einfügt?
    Liebe Grüße,
    Susanne

    • Hallo Susanne,

      ich habe bei neueren Beiträgen ebenfalls festgestellt, dass Shares nicht immer gezählt werden. Ich kann da aber nur Vermutungen anstellen. Eventuell liegt es an Facebook selber und Du lässt mal den Debugger die Beiträge prüfen.

      Bei mir trat das Phänomen in einem Blog nach sämtlichen Updates auf. Z. B. wurden in Verbindung mit dem Plugin All in One SEO in Verbindung mit dem Social Meta-Modul die Twittercards plötzlich nicht mehr umgesetzt und Posts nicht korrekt bei Facebook gepostet. Daher habe ich dort AiOS durch WordPress SEO ersetzt.
      In einem anderen Blog treten diese Probleme mit AiOS wiederum nicht auf.
      Ich musste also selber herumprobieren, bis ich eine zufriedenstellende Endlösung für diesen Blog gefunden habe.

      Lieben Gruß
      Sylvi

  • Hallo Sylvi, kann man die Buttons auch auf der Startseite und den Kategorieseiten des Blogs einfügen? Bekomme wenn ich es da einfüge nämlich immer eine Fehlermeldung.

    Fatal error: Cannot redeclare get_shares() (previously declared in ……blog-simone-bauer/wp-content/themes/waipouachildtheme/functions.php:72) in ……blog-simone-bauer/wp-content/themes/waipouachildtheme/functions.php on line 72

    Wäre toll wenn du mir weiterhelfen könntest! Danke schonmal

    Lg

  • Hallo Sylvi,
    das wäre sehr nett von dir. Gibst du mir Bescheid, wenn du es getestet hast! Danke schonmal! Lg