Contatore personalizzato per Twitter e Feedburner

Mi piacerebbe condividere un modo semplice per avere il tuo contatore follower di Twitter o contatore totale di lettori Feedburner utilizzando lo stile personalizzato sul tuo sito Web WordPress. Puoi vedere alcuni esempi nella Pagina contatore personalizzata per avere un'idea di come possono apparire questi contatori. Basta con l'introduzione, iniziamo.


Passaggio 1 Lettura del valore

La cosa più importante è come possiamo leggere il valore di Twitter e Feedburner, iniziamo prima con Twitter. Puoi ottenere i dettagli per il tuo account Twitter visitando il seguente URL: https://twitter.com/users/show/insert-tuo-username-here Ad esempio https://twitter.com/users/show/eizil, se fai clic sull'URL, vedrai un elenco di informazioni riguardanti il ​​mio account Twitter in formato XML.

Possiamo fare una cosa simile anche a Feedburner, puoi utilizzare il seguente URL per ottenere i tuoi dati di Feedburner: https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=insert-tuo-username-here Ad esempio https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=eizil, se fai clic sull'URL, vedrai le informazioni relative al mio account Feedburner.

Quindi ora abbiamo la fonte per le nostre informazioni, quindi dobbiamo leggere il valore XML dal nostro sito Web per utilizzarlo nel nostro contatore personalizzato. Noi useremo file_get_contents e il SimpleXMLElement funzione per leggere il valore da Twitter o Feedburner.

 // legge i dati di Feedburner $ data = file_get_contents ("https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=insert-your-username-here); $ xml = new SimpleXMLElement ($ data); // legge i dati di Twitter $ data = file_get_contents ('http://twitter.com/users/show/insert-your-username-here'); $ xml = new SimpleXMLElement ($ data);

Ora abbiamo tutti i dati di cui abbiamo bisogno da Twitter e Feedburner, quindi dobbiamo leggere il valore di follower e lettore da questi dati.

 $ total = $ xml-> feed-> entry ['circulation']; // Legge il conteggio totale da Feedburner $ total = $ xml-> followers_count; // Leggi il conteggio totale dei follower da Twitter

E uniamo questo codice per ottenere i totali per Twitter e Feedburner come nell'esempio seguente.

 // legge i dati di Feedburner $ data = file_get_contents ("https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=insert-your-username-here); $ xml = new SimpleXMLElement ($ data); $ total = $ xml-> feed-> entry ['circulation']; // Leggi il conteggio totale di Feedburner // leggi i dati di Twitter $ data = file_get_contents ('http://twitter.com/users/show/insert- tuo-username-qui '); $ xml = nuovo SimpleXMLElement ($ data); $ totale = $ xml-> followers_count; // Leggi il conteggio totale dei follower da Twitter

Passaggio 2 Disegnare il contatore

Abbiamo già il nostro valore per il nostro contatore, quindi modificheremo il nostro contatore per essere più bello. Useremo la seguente struttura HTML per il nostro contatore.

 
Valore
valore

Per lo stile 1 nella pagina contatore personalizzata, utilizzeremo il seguente CSS:

 .counter float: left; clear: both; larghezza: 100%;  / * Contatore di Feedburner * / #feedcount float: left; position: relative; #feedcount a width: 150px; altezza: 38 px; background: url (images / subscribe.png); blocco di visualizzazione;  #meedcount span position: absolute; inizio: 10px; a destra: 15px; colore bianco; font-size: 0.75em; font-weight: bold; / * Contatore Twitter * / #twitcount float: left; position: relative; #twitcount a width: 150px; altezza: 38 px; background: url (images / subscribe-twitter.png); display: block; #twitcount span position: absolute; inizio: 10px; a destra: 12px; colore bianco; font-size: 0.75em; font-weight: bold;

Ora hai un contatore personalizzato da utilizzare sul tuo tema WordPress.


Passaggio 3 Ottieni il codice nelle funzioni del tema

A questo punto, sappiamo già come leggere il valore e come fare un semplice contatore, poi creeremo una nuova funzione nel nostro file theme.php per gestire questa richiesta. Aggiungiamo anche un file di cache per leggere questo valore, poiché non vogliamo che il contatore tenti di recuperare un nuovo valore ogni volta che un utente visita il nostro sito Web WordPress.

Iniziamo con la creazione di una nuova funzione denominata getTwitFeedburnCount () come nell'esempio seguente

 function getTwitFeedburnCount () 

In seguito aggiungeremo due variabili alla funzione per consentirci di usarlo per Twitter e Feedburner, le due variabili che useremo sarebbero 1. nome utente e 2. tipo di account. Questi due valori verranno utilizzati per determinare quale codice verrà utilizzato per recuperare il valore e come identificatore per il nostro file di cache.

 function getTwitFeedburnCount ($ username, $ type) 

Prepareremo il file di cache all'inizio della funzione, in primo luogo proveremo a vedere se c'è un file di cache disponibile per essere usato altrimenti recupereremo un nuovo valore da Twitter o Feedburner.

 function getTwitFeedburnCount ($ username, $ type) if ($ type == "feedburner"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ tipo. md5 ($ username); elseif ($ tipo == "twitter"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ tipo. md5 ($ username); finisci se; if (is_file ($ cfile) == false): $ cfile_time = strtotime ('1983-04-30 07:15'); else: $ cfile_time = filemtime ($ cfile); finisci se; $ difference = strtotime (date ('Y-m-d H: i: s')) - $ cfile_time; if ($ difference> = 3600): // imposta l'intervallo prima di aggiornare la cache in secondi // recupera il nuovo valore codice va qui altro: // legge dal file di cache endif; 

Tutta la cache verrà archiviata nel file system temporaneo, per evitare violazioni della sicurezza se vogliamo utilizzare una cartella all'interno del nostro tema o l'installazione di WordPress. Ora possiamo aggiungere il codice che elabora effettivamente la lettura da Twitter e Feedburner.

 function getTwitFeedburnCount ($ username, $ type) if ($ type == "feedburner"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ tipo. md5 ($ username); elseif ($ tipo == "twitter"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ tipo. md5 ($ username); finisci se; if (is_file ($ cfile) == false): $ cfile_time = strtotime ('1983-04-30 07:15'); else: $ cfile_time = filemtime ($ cfile); finisci se; $ difference = strtotime (date ('Y-m-d H: i: s')) - $ cfile_time; if ($ difference> = 3600): // imposta l'intervallo prima di aggiornare la cache if ($ type == "feedburner"): $ data = file_get_contents ("https://feedburner.google.com/api/awareness/1.0 /GetFeedData?uri=".$username); $ xml = new SimpleXMLElement ($ data); $ total = $ xml-> feed-> entry ['circulation']; // Legge il conteggio totale da Feedburner elseif ($ tipo == "twitter"): $ data = file_get_contents ('http://twitter.com/users/show/'. $ Username); $ xml = new SimpleXMLElement ($ data); $ totale = $ xml-> followers_count; // Leggi il numero totale di follower da Twitter endif; if (is_file ($ cfile) == true): unlink ($ cfile); finisci se; tocco ($ cfile); file_put_contents ($ cfile, strval ($ totale)); return strval ($ total); else: $ total = file_get_contents ($ cfile); return strval ($ total); finisci se; 

Una cosa che ho bisogno di ricordarti, a volte Feedburner reimposta il valore se lo recuperi dal vivo, e finisci per avere zero come valore per il tuo lettore. Una soluzione rapida per questo sarebbe leggere il valore di Feedburner da 4 giorni fa. Questo è opzionale, solo una soluzione se si incontra il problema come ho fatto io. Devi aggiungere la data alla tua funzione come mostrato di seguito:

 function getTwitFeedburnCount ($ username, $ type) if ($ type == "feedburner"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ tipo. md5 ($ username); elseif ($ tipo == "twitter"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ tipo. md5 ($ username); finisci se; if (is_file ($ cfile) == false): $ cfile_time = strtotime ('1983-04-30 07:15'); else: $ cfile_time = filemtime ($ cfile); finisci se; $ difference = strtotime (date ('Y-m-d H: i: s')) - $ cfile_time; if ($ difference> = 3600): // imposta l'intervallo prima di aggiornare la cache if ($ type == "feedburner"): $ date = date ('Y-m-d', strtotime ('- 4 giorni')); $ data = file_get_contents ("https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=". $ username. "& dates =". $ date. ",". $ date); $ xml = new SimpleXMLElement ($ data); $ total = $ xml-> feed-> entry ['circulation']; // Legge il conteggio totale da Feedburner elseif ($ tipo == "twitter"): $ data = file_get_contents ('http://twitter.com/users/show/'. $ Username); $ xml = new SimpleXMLElement ($ data); $ totale = $ xml-> followers_count; // Leggi il numero totale di follower da Twitter endif; if (is_file ($ cfile) == true): unlink ($ cfile); finisci se; tocco ($ cfile); file_put_contents ($ cfile, strval ($ totale)); return strval ($ total); else: $ total = file_get_contents ($ cfile); return strval ($ total); finisci se; 

Dopo aver completato l'aggiunta di questa funzione al tema, sei a posto.


Passaggio 4 Utilizzare il codice

Ora se si desidera utilizzare la funzione, si prega di utilizzare il seguente formato

 echo getTwitFeedburnCount ("insert-your-username-here", "feedburner"); echo getTwitFeedburnCount ("insert-your-username-here", "twitter");

Puoi inserire il codice nel codice HTML come nell'esempio riportato di seguito

 

Conclusione

A questo punto dovresti essere in grado di utilizzare questa funzione in uno qualsiasi dei tuoi temi, puoi scaricare il file sorgente per dare un'occhiata ad altri stili come si vede nella Pagina contatore personalizzata. Condividi il tuo contatore personalizzato con me soprattutto se crei un nuovo stile per il tuo tema.