Mi è capitato più volte di vedere su alcuni siti e/o blog nei quali comparisse un’icona o un testo che indicasse il numero totale di condivisioni che corrispondevano esattamente alla somma dei numeri che rappresentavano le condivisioni su ogni social.
Ho voluto fare una ricerca e ho trovato un interessantissimo post sul blog di Tiziano Fogliata.
In questo articolo veniva menzionata una funzione di PHP e JSON che richiamava il numero totale di condivisioni su Facebook (like,share,commenti), di tweet di Twitter e di +1 di Google Plus di un determinato post, attraverso l’utilizzo delle API di SharedCount.com
(SharedCount.com = servizio di statistiche/analisi delle condivisioni dei vari canali Media, che rilascia il servizio a titolo gratuito, fino ad un massimo di 100000 interrogazioni al giorno salvando i risultati in cache ogni 5 minuti )
in modo da restituirvi le informazioni sulle condivisioni suddivise per i diversi social.
Integrazione in WordPress
Vediamo insieme questa funzione dovrà essere inserita nel vostro file functions.php (fatevene per sicurezza un backup prima):
function social_shares() { $url = get_permalink( $post_id ); $json = file_get_contents("http://api.sharedcount.com/?url=" . rawurlencode($url)); $counts = json_decode($json, true); echo "Condivisioni social: " . $counts["Twitter"] ." retweet, " . $counts["Facebook"]["total_count"] . " mi piace e ". $counts["GooglePlusOne"] . " +1"; }
mentre nel file che vorrete far comparire il totale (che sia single.php piuttosto che nei diversi loop -a seconda del tema-) vi basterà inserire questa stringa:
Tutte queste operazioni vi daranno come risultato la seguente frase:
“Condivisioni social: n retweet, n mi piace e n +1″
dove per n si intende il numero effettivo di condivisioni
Possiamo notare come nella 2a riga di questa funzione, venga richiamata l’API di SharedCount in questo modo:
$json = file_get_contents("http://api.sharedcount.com/?url=" . rawurlencode($url));
di conseguenza se io volessi fare una prova con un link di un post del mio blog, potrei scrivere nella barra degli indirizzi, il seguente url(come in questo esempio):
http://api.sharedcount.com/?url=link_del_post ( o link di un qualsiasi sito)
Analizzando il risultato ottenuto con il mio esempio ho notato che l’unica pecca di questo sistema è relativa a Pinterest, ovvero con qualsiasi link che voi mettiate, vi restituisce sempre un valore di 403.Quindi meglio ESCLUDERLO dalle somme totali
Da questo risultato possiamo ottenere tutte le chiavi da poter utilizzare per i diversi social network:
$counts["StumbleUpon"] // Sono le condivisioni su StumbleUpon $counts["Reddit"]; // Sono le condivisioni su Reddit $counts["Facebook"]["total_count"] // Mostra il numero totale di commenti + mi piace + condivisioni su Fb $counts["Facebook"]["comment_count"] // Mostra solo il numero dei commenti di Fb $counts["Facebook"]["like_count"] // Mostra solo il numero di mi piace $counts["Facebook"]["share_count"] // Mostra solo il numero di condivisioni su Fb $counts["Delicious"] // Sono le condivisioni su Delicious $counts["GooglePlusOne"] // Sono il numero di +1 di Google Plus $counts["Buz"] // Sono le condivisioni su Buz $counts["Twitter"] // Sono i tweet ricevuti su su Twitter $counts["Diggs"] // Sono le condivisioni su Digg $counts["Pinterest"] // Visualizza il numero di condivisioni su Pinterest (ma ripeto, mi sembra non funzionare correttamente) $counts["Linkedin"] // Visualizza il numero di condivisioni su Linkedin
La personalizzazione di questo codice, vi potrà restituire anche la somma di tutte le condivisioni effettuate.
function social_shares() { $url = get_permalink( $post_id ); $json = file_get_contents("http://api.sharedcount.com/?url=" . rawurlencode($url)); $counts = json_decode($json, true); $totalecondivisioni= $counts["Twitter"] + $counts["Facebook"]["total_count"] + $counts["GooglePlusOne"] + $counts["Linkedin"]; echo "$totalecondivisioni Condivisioni sui social"; }
(nella funzione qui sopra ho sommato i tweet + le condivisioni totali di Fb + i +1 ricevuti su Gplus + le condivisioni su Linkedin)
Non la trovate interessante come soluzione?!
da qui potrebbe nascere un’idea su un diverso interessante impiego
[ratings]