Ik wil graag een eenvoudige manier delen om uw Twitter-volger-teller of Feedburner-teller voor totale lezers te hebben met behulp van aangepaste styling op uw WordPress-website. U kunt enkele voorbeelden op de Aangepaste tellerpagina zien om het idee te krijgen hoe deze tellers eruit kunnen zien. Genoeg met de introductie, laten we beginnen.
Het belangrijkste is hoe we de waarde van Twitter en Feedburner kunnen lezen, laten we eerst beginnen met Twitter. Je kunt details voor je Twitter-account krijgen door naar de volgende URL te gaan: https://twitter.com/users/show/insert-your-gebruikersnaam-here Bijvoorbeeld https://twitter.com/users/show/eizil, als u op de URL klikt, ziet u een lijst met informatie over mijn Twitter-account in XML-formaat.
We kunnen iets vergelijkbaars ook met Feedburner doen, u kunt de volgende URL gebruiken om uw Feedburner-gegevens te verkrijgen: https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=insert-your-gebruikersnaam-here Bijvoorbeeld https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=eizil, als u op de URL klikt, ziet u informatie over mijn Feedburner-account.
Dus nu hebben we de bron voor onze info, daarna moeten we de XML-waarde van onze website lezen die we in onze aangepaste teller kunnen gebruiken. We zullen gebruiken file_get_contents
en de SimpleXMLElement
functie om de waarde van Twitter of Feedburner te lezen.
// lees Feedburner data $ data = file_get_contents ("https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=insert-your-username-here); $ xml = new SimpleXMLElement ($ data); // lees Twittergegevens $ data = file_get_contents ('http://twitter.com/users/show/insert-your-username-here'); $ xml = nieuw SimpleXMLElement ($ data);
Nu hebben we alle gegevens die we nodig hebben van Twitter en Feedburner, vervolgens moeten we de waarde van de volgers en lezers van deze gegevens lezen.
$ total = $ xml-> feed-> entry ['circulation']; // Lees het totale aantal van Feedburner $ total = $ xml-> followers_count; // Lees het totale aantal volgers van Twitter
En we combineren deze code om de totalen voor Twitter en Feedburner te krijgen, zoals in het onderstaande voorbeeld.
// lees 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 ['circulation']; // Lees het totale aantal van Feedburner // lees Twitter data $ data = file_get_contents ('http://twitter.com/users/show/insert- your-username-here '); $ xml = nieuw SimpleXMLElement ($ data); $ total = $ xml-> followers_count; // Totaal aantal volgers van Twitter lezen
We hebben onze waarde al voor onze teller, daarna zullen we onze toonbank opmaken om er beter uit te zien. We zullen de volgende HTML-structuur gebruiken voor onze teller.
Waardewaarde
Voor stijl 1 in de aangepaste Counter-pagina gebruiken we de volgende CSS:
.tegen float: links; beiden opschonen; breedte: 100%; / * Feedburnerteller * / #feedcount float: left; positie: relatief; #feedcount a width: 150px; hoogte: 38 px; achtergrond: url (images / subscribe.png); weergave: blok; #feedcount span position: absoluut; top: 10px; rechts: 15px; kleur wit; lettergrootte: 0.75em; lettertype-gewicht: vet; / * Twitter-teller * / #twitcount float: left; positie: relatief; #twitcount a width: 150px; hoogte: 38 px; achtergrond: url (images / subscribe-twitter.png); display: block; #twitcount span position: absolute; top: 10px; rechts: 12px; kleur wit; lettergrootte: 0.75em; lettertype: vet;
U hebt nu een aangepaste teller voor gebruik in uw WordPress-thema.
In deze fase weten we al hoe we de waarde moeten lezen en hoe we een eenvoudige teller kunnen maken. Vervolgens maken we een nieuwe functie in ons themafuncties.php-bestand om dit verzoek af te handelen. We zullen ook een cache-bestand toevoegen om deze waarde te lezen, omdat we niet willen dat de teller een nieuwe waarde probeert op te halen elke keer dat een gebruiker onze WordPress-website bezoekt.
Laten we beginnen met het maken van een nieuwe functie met de naam getTwitFeedburnCount () zoals het onderstaande voorbeeld
functie getTwitFeedburnCount ()
Vervolgens zullen we twee variabelen aan de functie toevoegen om ons in staat te stellen dit voor Twitter en Feedburner te gebruiken, de twee variabelen die we gaan gebruiken zijn 1. gebruikersnaam en 2. type account. Deze twee waarden worden gebruikt om te bepalen welke code wordt gebruikt om de waarde op te halen en als een ID voor ons cachebestand.
functie getTwitFeedburnCount ($ gebruikersnaam, $ type)
We zullen het cache-bestand aan het begin van de functie voorbereiden, eerst zullen we proberen te zien of er een cache-bestand beschikbaar is om te gebruiken of anders zullen we een nieuwe waarde van Twitter of Feedburner halen.
functie getTwitFeedburnCount ($ gebruikersnaam, $ type) if ($ type == "feedburner"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ gebruikersnaam); elseif ($ type == "twitter"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ gebruikersnaam); stop als; if (is_file ($ cfile) == false): $ cfile_time = strtotime ('1983-04-30 07:15'); else: $ cfile_time = filemtime ($ cfile); stop als; $ difference = strtotime (date ('Y-m-d H: i: s')) - $ cfile_time; if ($ difference> = 3600): // stel het interval in voordat de cache in seconden wordt bijgewerkt // haal nieuwe waardecode op hier anders: // read from cache file endif;
Alle cache wordt opgeslagen in een tijdelijk bestandssysteem, dit om elke inbreuk op de beveiliging te voorkomen als we een map binnen ons thema of een WordPress-installatie willen gebruiken. Nu kunnen we de code toevoegen die de meting daadwerkelijk verwerkt van Twitter en Feedburner.
functie getTwitFeedburnCount ($ gebruikersnaam, $ type) if ($ type == "feedburner"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ gebruikersnaam); elseif ($ type == "twitter"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ gebruikersnaam); stop als; if (is_file ($ cfile) == false): $ cfile_time = strtotime ('1983-04-30 07:15'); else: $ cfile_time = filemtime ($ cfile); stop als; $ difference = strtotime (date ('Y-m-d H: i: s')) - $ cfile_time; if ($ difference> = 3600): // stel het interval in voordat u de cache bijwerkt ($ type == "feedburner"): $ data = file_get_contents ("https://feedburner.google.com/api/awareness/1.0 /GetFeedData?uri=".$username); $ xml = nieuw SimpleXMLElement ($ gegevens); $ total = $ xml-> feed-> entry ['circulation']; // Lees het totale aantal van Feedburner elseif ($ type == "twitter"): $ data = file_get_contents ('http://twitter.com/users/show/'. $ Gebruikersnaam); $ xml = nieuw SimpleXMLElement ($ gegevens); $ total = $ xml-> followers_count; // Lees het totale aantal volgers van Twitter endif; if (is_file ($ cfile) == true): ontkoppelen ($ cfile); stop als; druk op ($ cfile); file_put_contents ($ cfile, strval ($ total)); return strval ($ total); else: $ total = file_get_contents ($ cfile); return strval ($ total); stop als;
Eén ding moet ik je eraan herinneren, Feedburner reset soms de waarde als je het live ophaalt, en je hebt uiteindelijk nul als waarde voor je lezer. Een snelle oplossing hiervoor is om de Feedburner-waarde van 4 dagen geleden te lezen. Dit is optioneel, alleen een oplossing als u ooit het probleem tegenkomt zoals ik deed. U moet de datum aan uw functie toevoegen, zoals hieronder getoond:
functie getTwitFeedburnCount ($ gebruikersnaam, $ type) if ($ type == "feedburner"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ gebruikersnaam); elseif ($ type == "twitter"): $ cfile = sys_get_temp_dir (). '/ e1z'. $ type. md5 ($ gebruikersnaam); stop als; if (is_file ($ cfile) == false): $ cfile_time = strtotime ('1983-04-30 07:15'); else: $ cfile_time = filemtime ($ cfile); stop als; $ difference = strtotime (date ('Y-m-d H: i: s')) - $ cfile_time; if ($ difference> = 3600): // stel het interval in vóór het bijwerken van de cache if ($ type == "feedburner"): $ date = date ('Y-m-d', strtotime ('- 4 dagen')); $ data = file_get_contents ("https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=". $ gebruikersnaam. "& dates =". $ date. ",". $ date); $ xml = nieuw SimpleXMLElement ($ gegevens); $ total = $ xml-> feed-> entry ['circulation']; // Lees het totale aantal van Feedburner elseif ($ type == "twitter"): $ data = file_get_contents ('http://twitter.com/users/show/'. $ Gebruikersnaam); $ xml = nieuw SimpleXMLElement ($ gegevens); $ total = $ xml-> followers_count; // Lees het totale aantal volgers van Twitter endif; if (is_file ($ cfile) == true): ontkoppelen ($ cfile); stop als; druk op ($ cfile); file_put_contents ($ cfile, strval ($ total)); return strval ($ total); else: $ total = file_get_contents ($ cfile); return strval ($ total); stop als;
Nadat u klaar bent met het toevoegen van deze functie aan uw thema, bent u klaar om te gaan.
Gebruik nu de volgende indeling als u de functie wilt gebruiken
echo getTwitFeedburnCount ("insert-your-username-here", "feedburner"); echo getTwitFeedburnCount ("insert-your-username-here", "twitter");
U kunt de code in de HTML plaatsen zoals het onderstaande voorbeeld
U zou nu in staat moeten zijn om deze functie in elk van uw thema's te gebruiken, u kunt het bronbestand downloaden om andere stijlen te bekijken zoals te zien op de Aangepaste tellerpagina. Deel uw aangepaste teller met mij, vooral als u een nieuwe stijl voor uw thema maakt.