Tilpasset teller for Twitter og Feedburner

Jeg vil gjerne dele en enkel måte å få din Twitter-folketeller eller Feedburner-totalleserteller til med tilpasset styling på WordPress-nettstedet ditt. Du kan se noen eksempler på Custom Counter Page for å få ideen om hvordan disse tellene kan se ut. Nok med introduksjonen, kan vi komme i gang.


Trinn 1 Leser verdien

Det viktigste er hvordan kan vi lese verdien fra Twitter og Feedburner, la oss starte med Twitter først. Du kan få detaljer for din Twitter-konto ved å gå til følgende URL: https://twitter.com/users/show/Sett-your-brukernavnet her For eksempel https://twitter.com/users/show/eizil, hvis du klikker på nettadressen, vil du se en liste over informasjon om min Twitter-konto i XML-format.

Vi kan også gjøre en lignende ting med Feedburner, du kan bruke følgende nettadresse for å få dine Feedburner-data: https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=Sett-your-brukernavnet her For eksempel https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=eizil, hvis du klikker på nettadressen, vil du se informasjon om min Feedburner-konto.

Så nå har vi kilden til vår info, neste må vi lese XML-verdien fra nettstedet vårt for å bli brukt i vår egendefinerte teller. Vi vil bruke file_get_contents og SimpleXMLElement fungere for å lese verdien fra Twitter eller Feedburner.

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

Nå har vi alle dataene vi trengte fra Twitter og Feedburner, neste må vi lese følgere og leserverdi fra disse dataene.

 $ total = $ xml-> feed-> entry ['sirkulasjon']; // Les totalt antall fra Feedburner $ total = $ xml-> followers_count; // Les total tilhenger telle fra Twitter

Og vi kombinerer denne koden for å få totalene for Twitter og Feedburner som eksempelet nedenfor.

 // les Feedburner data $ 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 ['sirkulasjon']; // Les totalt antall fra Feedburner // les Twitter data $ data = file_get_contents ('http://twitter.com/users/show/insert- ditt brukernavn-her '); $ xml = nytt SimpleXMLElement ($ data); $ total = $ xml-> followers_count; // Les totalt antall tilhenger fra Twitter

Trinn 2 Styling telleren

Vi har vår verdi for disken vår allerede, neste vil vi stilere vår teller for å se bedre ut. Vi bruker følgende HTML-struktur for våre teller.

 
Verdi
verdi

For Style 1 i Custom Counter Page, vil vi bruke følgende CSS:

 .counter float: left; klar: begge; bredde: 100%;  / * Feedburner counter * / #feedcount float: left; posisjon: relativ; #feedcount en width: 150px; høyde: 38px; bakgrunn: url (images / subscribe.png); skjerm: blokk;  #feedcount span posisjon: absolutt; topp: 10px; høyre: 15px; farge: hvit; skriftstørrelse: 0,75em; font-weight: bold; / * Twitter counter * / #twitcount float: left; posisjon: relativ; #twitcount en width: 150px; høyde: 38px; bakgrunn: url (bilder / abonnere-twitter.png); display: blokk; #twitcount span posisjon: absolutt; topp: 10px; høyre: 12px; farge: hvit; skriftstørrelse: 0,75em; font-weight: bold;

Nå har du en egendefinert teller som skal brukes på WordPress-temaet ditt.


Trinn 3 Få koden til temafunksjoner

På dette stadiet vet vi allerede hvordan du leser verdien og hvordan du lager en enkel disk, neste vil vi opprette en ny funksjon i vår theme functions.php-fil for å håndtere denne forespørselen. Vi legger også til en cachefil for å lese denne verdien, fordi vi ikke vil at telleren prøver å hente en ny verdi hver gang en bruker besøker vår WordPress-nettside.

La oss begynne med å opprette en ny funksjon kalt getTwitFeedburnCount () som eksempelet nedenfor

 funksjon getTwitFeedburnCount () 

Neste vil vi legge til to variabler til funksjonen slik at vi kan bruke dette til Twitter og Feedburner. De to variablene vi skal bruke, ville være 1. brukernavn og 2. type konto. Disse to verdiene vil bli brukt til å bestemme hvilken kode som skal brukes til å hente verdien, og som en identifikator for cachefilen.

 funksjon getTwitFeedburnCount ($ brukernavn, $ type) 

Vi vil klargjøre cachefilen ved begynnelsen av funksjonen, først vil vi prøve å se om det finnes en cachefil som skal brukes, ellers henter vi en ny verdi fra Twitter eller Feedburner.

 funksjon getTwitFeedburnCount ($ brukernavn, $ type) if ($ type == "feedburner"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ brukernavn); elseif ($ type == "twitter"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ brukernavn); slutt om; hvis (is_file ($ cfile) == false): $ cfile_time = strtotime ('1983-04-30 07:15'); ellers: $ cfile_time = filetid ($ cfile); slutt om; $ difference = strtotime (dato ('Y-m-d H: i: s')) - $ cfile_time; hvis ($ differanse> = 3600): // angi intervallet før du oppdaterer cachen i sekunder // hente ny verdi kode går her annet: // les fra cache fil endif; 

All cache lagres i midlertidig filsystem, dette er for å unngå sikkerhetsbrudd hvis vi skal bruke en mappe i vårt tema eller WordPress-installasjon. Nå kan vi legge til koden som faktisk behandler lesingen fra Twitter og Feedburner.

 funksjon getTwitFeedburnCount ($ brukernavn, $ type) if ($ type == "feedburner"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ brukernavn); elseif ($ type == "twitter"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ brukernavn); slutt om; hvis (is_file ($ cfile) == false): $ cfile_time = strtotime ('1983-04-30 07:15'); ellers: $ cfile_time = filetid ($ cfile); slutt om; $ difference = strtotime (dato ('Y-m-d H: i: s')) - $ cfile_time; hvis ($ differanse> = 3600): // angi intervallet før du oppdaterer cachen hvis ($ type == "feedburner"): $ data = file_get_contents ("https://feedburner.google.com/api/awareness/1.0 /GetFeedData?uri=".$username); $ xml = ny SimpleXMLElement ($ data); $ total = $ xml-> feed-> entry ['sirkulasjon']; // Les totalt antall fra Feedburner elseif ($ type == "twitter"): $ data = file_get_contents ('http://twitter.com/users/show/'. $ Brukernavn); $ xml = ny SimpleXMLElement ($ data); $ total = $ xml-> followers_count; // Les total tilhenger teller fra Twitter endif; hvis (is_file ($ cfile) == true): unlink ($ cfile); slutt om; berør ($ cfile); file_put_contents ($ cfile, strval ($ totalt)); returner strval ($ totalt); ellers: $ total = file_get_contents ($ cfile); returner strval ($ totalt); slutt om; 

En ting jeg må minne deg om, Feedburner tilbakestiller noen ganger verdien hvis du henter den live, og du ender med å ha null som verdien for leseren din. En rask løsning for dette ville være å lese Feedburner-verdien fra 4 dager siden. Dette er valgfritt, bare en løsning hvis du noen gang støter på problemet som jeg gjorde. Du må legge til datoen til din funksjon som vist nedenfor:

 funksjon getTwitFeedburnCount ($ brukernavn, $ type) if ($ type == "feedburner"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ brukernavn); elseif ($ type == "twitter"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ brukernavn); slutt om; hvis (is_file ($ cfile) == false): $ cfile_time = strtotime ('1983-04-30 07:15'); ellers: $ cfile_time = filetid ($ cfile); slutt om; $ difference = strtotime (dato ('Y-m-d H: i: s')) - $ cfile_time; hvis ($ difference> = 3600): // angi intervallet før du oppdaterer cachen hvis ($ type == "feedburner"): $ date = date ('Y-m-d', strtotime ('- 4 dager')); $ data = file_get_contents ("https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=". $ brukernavn. "& datoer =". $ date. ",". $ date); $ xml = ny SimpleXMLElement ($ data); $ total = $ xml-> feed-> entry ['sirkulasjon']; // Les totalt antall fra Feedburner elseif ($ type == "twitter"): $ data = file_get_contents ('http://twitter.com/users/show/'. $ Brukernavn); $ xml = ny SimpleXMLElement ($ data); $ total = $ xml-> followers_count; // Les total tilhenger teller fra Twitter endif; hvis (is_file ($ cfile) == true): unlink ($ cfile); slutt om; berør ($ cfile); file_put_contents ($ cfile, strval ($ totalt)); returner strval ($ totalt); ellers: $ total = file_get_contents ($ cfile); returner strval ($ totalt); slutt om; 

Når du er ferdig med å legge denne funksjonen til temaet ditt, er det bra å gå.


Trinn 4 Bruk koden

Nå, hvis du vil bruke funksjonen, bruk følgende format

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

Du kan sette koden sammen i HTML som eksempelet nedenfor

 

Konklusjon

Nå skal du kunne bruke denne funksjonen i noen av temaene dine, du kan laste ned kildefilen for å se på andre stiler som vist på Tilpasset teller side. Del din tilpassede teller med meg, spesielt hvis du oppretter en ny stil for temaet ditt.