Moin,
Ich stehe vor einem Problem.
Seit einigen Tagen versuche ich in Wordpress ein Script zu schreiben das aus der API von von Facebook & Twitter jeweils die Zahlen auslesen wie oft ein Artikel bereits auf den jewaligen Social Network geshart wurden.
Der Code in der functions.php des Themes sieht zurzeit so aus:
function facebook_share_counter() {
//FB Share
$facebook_graph = file_get_contents("https://graph.facebook.com/".get_permalink()."", true);
$facebook_objekt = json_decode($facebook_graph);
if(preg_match("/shares/",$facebook_graph)) {
echo '<span>';
echo $facebook_objekt->shares;
echo '</span> Shares';
} else {
echo '<span>0</span> Shares';
}
}
function twitter_share_counter() {
$Twitter_api = file_get_contents("http://urls.api.twitter.com/1/urls/count.json?url=".get_permalink()."", true);
$twitter_objekt = json_decode($Twitter_api);
echo '<span>';
echo $twitter_objekt->count;
echo '</span> Retweets';
}
Alles anzeigen
Und aufrufen tu ich das ganz einfach mit <?php facebook_share_counter(); ?> bzw. <?php twitter_share_counter(); ?>
Aussehen tut das ganze jedenfalls so:
[Blockierte Grafik: http://www.abload.de/img/unbenannterqz.png]
Jetzt hab ich das Problem das das ja für jeden Artikel einzeln ausgelesen werden muss und dadurch die Seitenladezeit drastisch steigt. (vorher nicht mal eine sekunde, jetzt sinds bereits 5 Sekunden bis die Seite überhaupt anfängt zu laden.)
Also habe ich bisschen gesucht und bin auf die Transient API von Wordpress gestoßen, konnte damit aber nicht viel anfangen und alle Versuche damit zu arbeiten schlugen fehl.
Also meine Frage, wie bekomme ich das so hin das ich sich die Zahlen nur, sagen wir, alle 3 Stunden neu geholt werden und solange in der Datenbank gespeichert wird und auch benutzt wird?
Ich blicke da erlich gesagt gar nicht mehr durch und würde mich freuen wenn ihr mir helfen würdet.
mfg
PS: Vielleicht kennt ihr auch ein Plug in was diese Arbeit für mich übernimmt? Also die Funktion die Zahlen auszulesen mein ich und nicht das cachen. :)