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.
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
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.
Verdiverdi
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.
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å.
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
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.