Plugin Archives - Technik - Blogbasis.net https://technik.blogbasis.net/tag/plugin Die Basis des freien Wissens – Technik Tue, 08 Oct 2013 10:53:35 +0000 de hourly 1 https://wordpress.org/?v=6.8.1 Social Counter Widget – Twitter Followeranzahl fixen https://technik.blogbasis.net/social-counter-widget-twitter-followeranzahl-fixen-08-10-2013 https://technik.blogbasis.net/social-counter-widget-twitter-followeranzahl-fixen-08-10-2013#respond Tue, 08 Oct 2013 10:53:22 +0000 http://technik.blogbasis.net/?p=931 Seit dem Twitter seine API auf Version 1.1 geupdated hat, funktioniert das Social Counter Widget-Plugin nicht mehr. Das Plugin kann nicht die Anzahl der Follower eines Twitteraccounts herausfinden, und zeigt deswegen „0“ an. Das Problem lässt sich mit einem geschickten Eingriff einfach lösen.

Schluss mit API v1

Vor einigen Monaten kündigte Twitter das Ende der API v1 an, um diese durch die neuere Version 1.1 zu ersetzen. Da die Entwicklung an dem Social Counter Widget scheinbar eingeschlafen ist, gab es bisher kein Update des Plugins, sodass der Twitter Followercount falsch oder gar nicht berechnet wird.

In der Datei wp-content/plugins/social-counter-widget/social-counter-widget.php wird folgender Code verwendet:

if(trim($arr['twitterName'])) {
             $query = 'http://api.twitter.com/1/users/show.json?screen_name='.$arr['twitterName'];
            $result = json_decode(file_get_contents($query));
            $this->twitter = $result->followers_count;

Der Lösungsversuch

Leider reicht es nicht aus, das „/1/“ durch „/1.1/“ zu ersetzen, da Twitter sonst den API Aufruf mit einem Fehler quittiert. Man müsste nämlich OAuth-Tokens nutzen, um sich zu authentifizieren. Da wir diesen zusätzlichen Aufwand nicht treiben wollen, muss eine andere Lösung her.

Als Quick-Fix hatte ich daraufhin die Followeranzahl im Code festgeschrieben:

if(trim($arr['twitterName'])) { 
                $this->twitter = 43; //$result->followers_count;

Auf dauer war diese Lösung aber nicht optimal, da ich jedes Mal den Code neu anpassen musste, wenn ein neuer Follower dazu kam oder weg ging.

Die bessere Lösung

Nach ein wenig Googlen stieß ich auf einen Thread auf Stackoverflow.com, in dem genau mein Problem behandelt wurde. Dort wählte ich die verhältnismäßig einfachste Lösung aus, und änderte die Plugin-Klasse folgendermaßen ab:

Als erstes fügen wir eine neue private Funktion hinzu:

private function get_twitter_followers($url){
            $data = file_get_contents("http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20from%20html%20where%20url=%22".$url."%22%20AND%20xpath=%22//a[@class='js-nav']/strong%22&format=json"); // Opening the Query URL
            $data = json_decode($data); // Decoding the obtained JSON data
            $count = intval($data->query->results->strong[2]); // The count parsed from the JSON
            return $count; // Printing the count
    }

Danach passen wir die Twitter-Codestelle noch einmal an:

if(trim($arr['twitterName'])) {
            $followercount=$this->get_twitter_followers("http://twitter.com/".$arr['twitterName']);
            $this->twitter = (int) $followercount;

Die Funktion „get_twitter_followers“ macht nichts anderes, als die offizielle Twitterseite zu nutzen, um das Profil aufzurufen, und dann über XPATH den Wert des Followeranzahl-HTMl-Elements auszulesen.

Nachdem man die Änderungen vollzogen hat, muss man eine Weile warten, bis das Plugin die Statistiken erneuert. Dann sollte die Twitter-Followeranzahl auch wieder stimmen :)

Fazit

Man kann alles wieder in Ordnung bringen und muss nicht gleich das Plugin deinstallieren. Falls ihr zufällig Twitter nutzt, und der Post euch geholfen hat, dann folgt uns doch einfach ;)

Twitter-Profil: https://twitter.com/Blogbasis

~ Sebastian

]]>
https://technik.blogbasis.net/social-counter-widget-twitter-followeranzahl-fixen-08-10-2013/feed 0
WordPress postview-counter einrichten https://technik.blogbasis.net/wordpress-postview-counter-einrichten-14-08-2013 https://technik.blogbasis.net/wordpress-postview-counter-einrichten-14-08-2013#respond Wed, 14 Aug 2013 21:02:28 +0000 http://technik.blogbasis.net/?p=841 In diesem Blogartikel beschreibe ich den Vorgang des Einrichtens eines Postview-counters. Dieser zählt die einzelnen Aufrufe jedes Blogartikels.

Der Autor „aberlin“ hatte mich zwischendurch gefragt, ob ich ihm nicht sagen könnte, wie viele Aufrufe seine Beiträge haben. Zur Trafficanalyse nutzen wir das quell-offene System Piwik. Dieses bietet leider nicht direkt die Möglichkeit nachzuschauen, wie viele Besuche auf einer URL stattgefunden haben.

Die Lösung: Das WP-Postview Plugin

Die Lösung des Problems ist relativ einfach. Es gibt ein kleines Plugin, welches die gewünschte Funktionalität bietet. Nach der Installation des Plugins sollte im Menüpunkt „Einstellungen“->“Postviews“ die folgende Seite erscheinen:

Postviews Plugin Einstellungen

Postviews Plugin Einstellungen

Das Plugin könnt ihr nach eurem Geschmack konfigurieren, doch es bieten sich die im Screenshot gezeigten Einstellungen an.

Bis hierhin war das der einfache Teil der Einrichtung. Jetzt muss man nämlich noch an der gewünschten Stelle im Theme die Funktion

the_views();

einbinden.

Ich habe den Zähler im unteren Bereich des Artikels eingebunden, wie man es auf dem folgenden Screenshot erkennen kann:

Postview Counter Beispiel

Postview Counter Beispiel

Um das genauso umzusetzen, muss man im Theme-Editor die Datei „content.php“. Diese findet sich unter „wp-content/themes/[THEMENAME]/content.php“. Dort findet sich unter anderen der folgende Code im unteren Teil der Datei:

Postview Count im Theme

Postview Count im Theme

Ihr müsst also nur in dem Footer (oder Header) ein „<span>“-Tag mit dem gewünschten Text und dem kleinen Stück PHP-Code dort eintragen. In meinem Beispiel ist dies also:

<span>Der Beitrag wurde <?php the_views(); ?> Mal aufgerufen.</span>

Ich sollte hier vielleicht noch anmerken, dass wirklich jeder Aufruf der Seite gezählt wird. Lädt jemand eine Seite neu, wird der Zähler direkt erhöht. Man sollte den Zahlen im Zweifel eher kritisch gegenüber stehen.

Fazit

Die Anzahl der Aufrufe kann potentieller Leser dazu bringen einen Artikel zu lesen, genauso wie es auch das Gegenteil bewirken kann. Da ich jedoch ein Statistik-Freak bin, kann ich dem Postview-Counter nur positives abgewinnen :)

~ Sebastian

]]>
https://technik.blogbasis.net/wordpress-postview-counter-einrichten-14-08-2013/feed 0