Zähler für Feedleser, Twitter-, Facebook- und Google+-Follower ausgeben und manuell einbauen

Zähler Social Media Buttons

In meinem vorherigen Beitrag habe ich die Anwendung von CSS-Sprites anhand der Darstellung meiner Social Media-Buttons in der Sidebar beschrieben. Das Tüpfelchen auf dem “i” fehlte aber noch: Die Ausgabe der Anzahl an Feedabonennten, Twitter-Follower, Facebook-Fans und Google+-Seiten-Follower.

Während Umsetzungen der ersten drei Zähler recht einfach im Internet zu finden waren, habe ich mir bei Google+ ganz schön die Zähne ausgebissen.

Keiner der aufgeführten Scripte funktionierte, da Google mittlerweile die Api geändert hatte. Entweder wurde gar nichts oder “0” ausgegeben. Aber nachdem ich eine Woche lang gesucht habe, bin ich endlich auf eine Lösung gestoßen, durch die nun auch die Anzahl der Follower meiner Google+-Seite dargestellt wird.

Anzahl der Feedleser

Am einfachsten war die Darstellung der Feedabonnenten. Diese hatte ich hier im Blog kurz in einem älteren Beitrag erwähnt. Da die Feedburner-Api nicht mehr existiert, erreiche ich die Anzeige auf dem Umweg über das Plugins FeedStats. Feedburner verwende ich zwar immer noch. Da aber eine Umleitung dorthin per .htaccess eingerichtet ist, bestand darin kein Problem, den WordPress-eigenen Feed zu verwenden.

Zur Darstellung der Zähler unter dem Feedbutton füge ich einfach folgenden Code ein:

<span class="feedabo"><?php feedstats_getfeeds_button(); ?></span>

Der Wert “span class” gibt mir die Möglichkeit, die ausgegebene Zahl in der style.css meines Themes entsprechend zu gestalten. Komplett sieht nun also mit Einbau des Buttons der Code in der sidebar.php wie folgt aus:

<a class="feed-32x32" href="https://www.sylvis-blog.de/feed" target="_blank" title="Abonniere meinen Feed"></a>
<span class="feedabo"><?php feedstats_getfeeds_button(); ?></span>

Anzahl der Twitter-Follower

Normalerweise wird der folgende Code der functions.php des Themes hinzugefügt. Da ich das Plugin Toolbox verwende, habe ich dafür ein Modul namens twitterfollower_count.php angelegt:

<?php
/*
Module Name: Anzahl Twitter-Follower
Description: Anzahl der Twitter-Follower anzeigen [Frontend]
Author: Sergej Müller
Author URI: 
*/


/* Sicherheitsabfrage */
if ( !class_exists('Toolbox') ) {
	header('Status: 403 Forbidden');
	header('HTTP/1.1 403 Forbidden');
	exit();
}
function getTwitterFollowers($screenName = 'codeforest')
{
    // some variables
    $consumerKey = 'xxxxxxxxxxxxxxxxxxx';
    $consumerSecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    $token = get_option('cfTwitterToken');
 
    // get follower count from cache
    $numberOfFollowers = get_transient('cfTwitterFollowers');
 
    // cache version does not exist or expired
    if (false === $numberOfFollowers) {
        // getting new auth bearer only if we don't have one
        if(!$token) {
            // preparing credentials
            $credentials = $consumerKey . ':' . $consumerSecret;
            $toSend = base64_encode($credentials);
 
            // http post arguments
            $args = array(
                'method' => 'POST',
                'httpversion' => '1.1',
                'blocking' => true,
                'headers' => array(
                    'Authorization' => 'Basic ' . $toSend,
                    'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8'
                ),
                'body' => array( 'grant_type' => 'client_credentials' )
            );
 
            add_filter('https_ssl_verify', '__return_false');
            $response = wp_remote_post('https://api.twitter.com/oauth2/token', $args);
 
            $keys = json_decode(wp_remote_retrieve_body($response));
 
            if($keys) {
                // saving token to wp_options table
                update_option('cfTwitterToken', $keys->access_token);
                $token = $keys->access_token;
            }
        }
        // we have bearer token wether we obtained it from API or from options
        $args = array(
            'httpversion' => '1.1',
            'blocking' => true,
            'headers' => array(
                'Authorization' => "Bearer $token"
            )
        );
 
        add_filter('https_ssl_verify', '__return_false');
        $api_url = "https://api.twitter.com/1.1/users/show.json?screen_name=$screenName";
        $response = wp_remote_get($api_url, $args);
 
        if (!is_wp_error($response)) {
            $followers = json_decode(wp_remote_retrieve_body($response));
            $numberOfFollowers = $followers->followers_count;
        } else {
            // get old value and break
            $numberOfFollowers = get_option('cfNumberOfFollowers');
            // uncomment below to debug
            //die($response->get_error_message());
        }
 
        // cache for an hour
        set_transient('cfTwitterFollowers', $numberOfFollowers, 1*60*60);
        update_option('cfNumberOfFollowers', $numberOfFollowers);
    }
 
    return $numberOfFollowers;
}

Den erforderlichen ConsumerKey und ConsumerSecret für die Zeilen 19 und 20 erhaltet ihr auf dieser Seite. Dazu müsst ihr eine neue Application erstellen, wodurch die entsprechenden Schlüssel generiert werden.

Diejenigen, die Toolbox nicht verwenden und lieber den Code in die functions.php des Themes einfügen möchten, müssen den Code ab Zeile 16 bis Ende kopieren – umschlossen von <?php und ?>

Das gilt auch für die nachfolgenden Codebeispiele von Facebook und Google+:

<?php [Hier steht der Code für die functions.php] ?>

Für die Darstellung in der sidebar.php (oder bei Euch an gewünschter Stelle) füge ich nun folgenden Code ein:

<span class="twitterfollower"><?php echo getTwitterFollowers('Dein Twittername'); ?></span>

Anzahl der Facebook-Fans

Mein Modul-Code für die Funktion dafür sieht so aus …

<?php
/*
Module Name: FacebookFan-Zähler
Description: Facebookfan-Page-Zähler in Sidebar anzeigen [Frontend]
Author: Sergej Müller
Author URI: 
*/


/* Sicherheitsabfrage */
if ( !class_exists('Toolbox') ) {
	header('Status: 403 Forbidden');
	header('HTTP/1.1 403 Forbidden');
	exit();
}
function lj_fb_count($fb_ID=''){
    $fb_count='';
    if($fb_ID && get_site_transient('lj_fb_count')===false) 
    {
        $url='http://api.facebook.com/method/fql.query?format=json&query=SELECT+fan_count+FROM+page+WHERE+page_id+IN%28'.$fb_ID.'%29';
        $fb_count = json_decode(wp_remote_fopen($url),false); 
        $fb_count=$fb_count[0]->fan_count; 
		//Caching count for Ten hours----------------------------
        set_site_transient('lj_fb_count',$fb_count, 60 * 60* 10 ); 
    }else{
        $fb_count=get_site_transient('lj_fb_count');
    }
    echo $fb_count;
}

… und der für die Ausgabe in der sidebar.php:

<span class="facebookfans"><?php lj_fb_count('ID Deiner Facebookseite');?></span>

Die ID Eurer Facebook-Seite könnt ihr hier ermitteln.

Anzahl der Follower einer Google+-Seite

Der Code, der letztendlich bei mir funktionierte, habe ich in diesem Beitrag bei “Stack Overflow” gefunden. Lange Rede, kurzer Sinn – diesen setze ich als Modul in folgender Weise ein:

<?php
/*
Module Name: Googleplus Counter
Description: Gibt die Anzahl der Googleplus Fans aus [Frontend]
Author: Sergej Müller
Author URI: 
*/

/* Sicherheitsabfrage */
if ( !class_exists('Toolbox') ) {
  die();
}

/* Ab hier kann's los gehen */

function get_plusones($url) {
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc");
  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
  $curl_results = curl_exec ($curl);
  curl_close ($curl);
  $json = json_decode($curl_results, true);
  return intval( $json[0]['result']['metadata']['globalCounts']['count'] );
}

An gewünschter Ausgabestelle füge ich dann folgenden Code ein:

<span class="googlecircles"><?php echo get_plusones("http://Deine Webseiten-Url"); ?></span>

So, ich hoffe jetzt, dass nicht wieder einem Social Media-Dienst auf die Idee kommt, die Api zu ändern oder entfernen. ;-) Bei Tumblr beweise ich momentan noch Mut zur Lücke. Ich konnte wirklich keine Lösung finden, die Anzahl meiner Follower umzusetzen.

Hinweis
Dieser Beitrag bezieht sich auf Codierungen oder/und Funktionen, die ich noch in meinem alten Template umgesetzt habe. Es ist möglich, dass sie in dem aktuellen Blog-Theme nicht übernommen wurden und somit die Darstellung bzw. Funktion nicht mehr existiert.

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".

15 Kommentare

  • Super, danke dass du das so ausführlich und nachvollziehbar beschreibst, muss ich auch mal ausprobieren.
    Hab ich das richtig verstanden, dass die Zahl der Feedleser nicht über Feedburner “gerechnet” ist? Mal doof gefragt: wie werden die “Wordpress”-Feedleser eigentlich “gezählt”?

    • Hallo Viaina,

      genau, gerechnet werden die Feedleser nun über das Plugin “Feedstats” und ich kann mir eine Statistik im Dashboard anzeigen lassen. Die Anzahl der Feedleser in der Sidebar stellt die durchschnittliche Anzahl der Feedleser in den letzten 8 Tagen dar – solange habe ich das Plugin erst installiert.
      Was mich an Feedburner immer gestört hat, waren die stark schwankenden Zahlen. Heute z. B. werden sogar 199 Feedleser in dessen Statistik angezeigt. Morgen werden es wohl wieder nur noch 130 sein. ;-)

      Ich denke, dass die Zahl auch bei Feedstats in nächster Zeit wieder heruntergehen wird, da ich in der Regel nicht sehr häufig Beiträge veröffentliche. Wichtig war mir eine realistische Statistik und den Eindruck habe ich momentan.

  • Ah du bist genial :) Heute bin ich bereits den halben Tag auf der Suche nach einem passenden Social-Widget, da in der Sidebar beim derzeitigen Plugin Google+ seit einem Update leider fehlt. Werde deine Schritte in den nächsten Tagen mal befolgen.

    Liebe Grüsse

    Marco

    • Lach … na passt es ja dann. Ich war auch total überrascht, dass plötzlich die Follower-Zahl mit diesem Script angezeigt wurde. Ich hatte ja ungelogen 1 Woche lang nach einer Lösung für Google+ gesucht und wollte schon fast aufgeben.
      Dann wünsche ich Dir viel Spaß beim Einbau.

      Lieben Gruß
      Sylvi

  • Sehr schöner Artikel. Danke für die tolle Arbeit. Da hab ich morgen was zu tun. Auch an die Sache mit den Sprites werde ich mich vielleicht mal herantrauen. :-)

    Falls ich das nicht schon getan habe, wünsche ich dir und deiner Familie einen guten Rutsch alles Liebe für das neue Jahr.

    • Hallo Horst,

      lieben Dank. Dieser Beitrag ist ein Beispiel dafür, dass die Recherche um ein Vielfaches länger dauerte als das Schreiben selbst. ;-)
      Ich hoffe, dass die Dokumentation verständlich ist, ansonsten: Bitte melden.
      Interessiert mich schon, ob es auch bei Dir so funktioniert hat.

      Ich wünsche Dir und Deinen Lieben auch einen Superrutsch ins neue Jahr,
      LG Sylvi

  • Wow, wirklich ein super Artikel!
    schrittweise erklärt – so versteh es ja sogar ich ;D

    ganz liebe Grüße

    • Hallo Carolin,

      vielen Dank für Dein nettes Feedback. Ja, ich habe es so formuliert, wie ich es letztendlich dann ebenfalls verstehe – sozusagen auch für mich noch einhmal zum Nachlesen. ;-)

      Lieben Gruß
      Sylvi

  • Hey Sylvi, danke für die umfangreiche Erklärung. Wirklich gut beschrieben! Kann hier allen nur zustimmen. Werde mich morgen ransetzen das bei mir mal umzusetzen. Werde dir berichten und weiteres Feedback geben :)

    Bis dahin, liebe Grüße, Lisa

    • Hej Gina,

      danke für Dein nettes Feedback. :-)
      Ich würde mich total über ein kurzes Statement freuen.

      Lieben Gruß
      Sylvi

  • Hallo,

    Ich wollte die facebook likes
    (mit einem solchen kleinen Bildchen wie hier)
    in eine Webseite einbauen
    habe mir den code in eine php Datei gepackt
    die ID dazu gesucht aber ich bekomme eine leere Seite angezeigt
    Was fehlt mir noch dazu damit ich die likes sehen kann?
    Ich müßte doch wenigstens etwas sehen und wenn es die echo Ausgabe ist.
    Das schließende php habe ich auch noch eingebaut.

    Danke für die Hilfe
    Jörg

    • Ich habe meinen vorigen Plan siehe oben verworfen und habe nun wie Du geschrieben hast das Modul Namens twitterfollower_count.php angelegt und in der Ordner Module in der Toolbox gepackt.
      Es wurde auch erkannt von der Toolbox, habe es im Backend aktiviert und ich habe eine weiße Seite von WP erhalten, kein Inhalt nichts drin.
      Nach Deaktivierung war wieder alles ok.
      Was ist da schief gegangen, hast Du eine Idee?
      Stimmt etwas mit dem Code nicht habe ihn direkt von hier mit copie und paste eingefügt?

      Jörg

      • Hallo Jörg,

        ich habe jetzt alle Codes noch einmal überprüft und teilweise korrigiert. Ich meine, die Ursache gefunden zu haben. In der ersten Zeile bei dem Code für die Anzeige der Twitterfollower hatte sich im Beitrag nach dem

        in der ersten Zeile noch zusätzlich

        --

        eingeschlichen ... warum auch immer.

        Tut mir leid, falls das die Ursache für die Anzeige der weißen Seite bei Dir war und hoffe, dass es nun bei Dir auch funktioniert.

        Gruß Sylvi

  • hallo Sylvi,

    bei mir gibt der g+ count nur 0 zurück, die url hat über 100 shares, wie kann ich das probelm lösen, bin schon ewig auf der suche

    vg david

    • Hallo david,

      es geht nicht um “Shares” sondern um die Follower Deiner Google+-Seite, die der Zähler generiert. Hast Du denn eine Seite oder lediglich einen persönlichen Account bei Google+ angelegt?

      Gruß Sylvi