Du har nettopp publisert et fantastisk innlegg på WordPress-bloggen din og vil gjerne fortelle alle om det. Har du en Twitter-konto? La oss da utvikle et plugin som hver gang du lagrer et nytt innlegg på WordPress, automatisk tweets, lar alle dine følgere vite at de kan finne noe nytt på bloggen din. La oss komme i gang!
Selv om det er mange flotte gratis Twitter-plugins der ute, er det denne forfatterens oppfatning at det egentlig ikke er noen erstatning for å vite hvordan du gjør disse ting selv. I mange tilfeller, hvis du har noe veldig spesifikt i tankene, kan det også være mye enklere å bare skrive din egen plugin fra bunnen av uansett ... så hvis du er frustrert med å prøve å hack / style / configure et eksisterende plugin for å arbeid på nettstedet ditt, dette kan være løsningen på hodepine!
For å følge opp denne opplæringen trenger du følgende:
Prosessen med å få og legge inn data til Twitter krever følgende trinn:
Ovennevnte trinn 2 og 3 kan være kjedelig og kan være et emne for en komplett opplæring. Derfor anbefaler jeg at du bruker et bibliotek som håndterer disse trinnene. Den jeg liker mest, ble utviklet av Abraham Williams. Det er ganske enkelt å bruke, koden er klar og lett å forstå og er tilgjengelig på github.
Ved hjelp av dette pluginet kan vi kvitte seg med detaljene om å koble til Twitter og få data fra det siden disse oppgavene er utført av TwitterOAuth-klassen.
Som vi allerede har diskutert, er det første trinnet for å implementere pluginet vårt å registrere et nytt Twitter-program. Med denne applikasjonen vil vi få tilgangsnøkler som gjør at vi kan få de nødvendige twitterdataene. Naviger i nettleseren din til Twitter utvikler siden og logg inn med test brukerkonto. Deretter klikker du på koblingen "Opprett en app". Fyll ut skjemaet med den nødvendige informasjonen (du kan sette en plassholder for nettstedet).
Det er veldig viktig å fylle ut også tilbakekallingsadressefeltet, siden det blir tomt, begrenser programmet fra å bruke tilbakeringinger. Uansett vil vi ikke bruke verdien som er angitt i dette arkiverte, men en som er konfigurert i WordPress-plugin.
Samtykke utviklerens regler og fyll inn captcha-informasjonen, og trykk deretter på "Opprett din Twitter-applikasjon" -knappen. Du blir omdirigert til siden i skjermbildet nedenfor:
Rull ned til delen "Tilgangstoken" og trykk på "Opprett min tilgangstoken" -knappen. Denne handlingen vil generere et tilgangstoken og en tilgangstokenhemmelighet som sammen med forbrukernøkkelen og forbrukerhemmeligheten brukes til å logge inn på Twitter og bli autorisert til å utføre operasjoner på Twitter-dataene.
Jeg vet at du er ivrig etter å få hendene skitne ved å skrive WordPress-plugin. Men før, la oss ta en titt på hvordan vi kan bruke TwitterOAuth-klassen. Ta deg tid til å studere det er dokumentasjonsfil og kode på github. Etter det vil vi utvikle sammen en liten mockup søknad for å se om vi er i stand til å bruke den med hell.
De viktigste filene fra Abrahams bibliotek er de i twitteroauth-mappen. Faktisk er det de eneste filene som inneholder implementeringen av biblioteket. Resten av filene er bare et eksempel på hvordan du bruker klassen selv.
Forbered en mappestruktur som nedenfor:
Som du kan se, tok vi over hele prosjektets struktur fra github til vår mocking up søknad. Vi vil endre det litt siden vi ikke trenger alle handlingene fra demo-appen Abraham Williams implementert.
La oss sjekke hva vi har endret å ta filene en etter én.
/ * Last inn nødvendige lib-filer. * / require_once ('twitteroauth / twitteroauth.php'); require_once ( 'config.php'); / * Opprett et TwitterOauth objekt med forbruker / bruker tokens. * / $ connection = ny TwitterOAuth (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); / * Hvis metode er angitt, endrer API-anrop. Test kalles som standard. * / $ content = $ connection-> get ('account / verify_credentials'); $ connection-> post ('statuses / update', array ('status' => 'Status for status her')); / * Inkluder HTML for å vise på siden * / include ('html.inc');
Index.php-filen er inngangspunktet for vår søknad. Når du besøker nettstedet ditt i nettleseren, blir denne koden utført. Innvendingene gjør det ganske selvforklarende. Parametrene til TwitterOAuth klassekonstruksjonen er hentet fra config.php filen som vi skal besøke kort tid. Etter å ha fått en forbindelse til twitter må vi autorisere oss ved å utføre en forespørsel med "konto / verifiseringsverdier" -parametere.
Resultatet av få forespørselen er lagret i $ innholdsvariabelen og vil bli vist til brukeren av html.inc-filen, slik at også en tilbakemelding fra operasjonen blir gitt. For å legge inn noe på Twitter, utfører vi en postforespørsel med parameteren 'statuser / oppdatering' og teksten som skal legges inn.
/ ** * @file * Et enkelt sted å lagre konfigurasjonen. * / define ('CONSUMER_KEY', 'store_here_the_consumer_key'); define ('CONSUMER_SECRET', 'store_here_the_consumer_secret'); define ('ACCESS_TOKEN', 'store_here_the_access_token'); define ('ACCESS_TOKEN_SECRET', 'store_here_the_access_token_secret'); define ('OAUTH_CALLBACK', 'http://twitter.dev/callback.php');
Merk at OAuth-tilbakekallingsadressen er basert på http://twitter.dev-siden. Dette er måten jeg definerte min virtuelle vert i apache på min maskin. Du kan definere deg selv med annet navn.
I denne filen definerer vi våre konstanter. De fire første er parametere i TwitterOAuth-konstruktøren (se ovenfor), og den siste erstatter tilbakekallingsadressen vi skrev inn da definert søknaden. Du får de fire første konstantene fra Twitter-applikasjonen.
Jeg vil ikke liste koden her siden det er ganske enkelt, du kan hente det fra nedlastingsdelen. Den lager en header for siden, og i innholdsområdet vises bare innholdsvariabelen $. Vår hensikt er å få tweet på Twitter, så denne filen er bare for å få tilbakemelding om våre forespørsler.
Flott, vår mock up søknad er ferdig. Det er på tide å se hva vi har gjort hittil. Så besøk nettstedet ditt i nettleseren din, og sjekk deretter test twitter-kontoen din. Du bør ha en tweet der med teksten: "Tekst av status her".
Nå som vi forstår hvordan du bruker biblioteket, kan vi begynne å utvikle vårt WordPress-plugin.
Vi må følge noen regler for å integrere pluginet vårt i WordPress. Så gå inn i WordPress-installasjonsmappen din og gå til wp-content / plugins-mappen og opprett en katalogstruktur som den i bildet nedenfor:
Abraham Williams-bibliotekskoden vil bli lagret i lib-mappen og klassen vi utvikler i mappen. I index.php-filen i roten til vår undermappe lagrer vi koden som utløser WordPress-handling.
Til slutt er vi der. Vi begynner å skrive pluginens kode. Noen designhensyn: vi kan lagre all vår kode i index.php-filen, og dette kan være et godt alternativ for en enkel plugin. Men jeg bestemte meg for å lagre koden i en egen fil i en klasse (lagret i mappen), på grunn av to grunner. Den viktigste er at hvis vi gjør ting som dette, blir det enklere å utvide funksjonaliteten til plugin-modulen sammenlignet med å ha all kodebutikken i en enkelt fil. For det andre vil jeg vise deg hvordan plugin-koden kan skrives i en klasse.
WordPress må vite at vi utviklet et plugin og ønsker å integrere det med hovedsystemet. Dette gjøres via flere linjer med kommentarer i hovedfilen til puginen (i vårt tilfelle index.php). Åpne index.php i din favorittredigerer og skriv inn følgende kode:
/ * Plugin Name: MyTweet Plugin URI: http://www.google.com/ Beskrivelse: Dette pluginet tweet til forfatterens Twitter-konto når et nytt innlegg er plassert på WordPress. Tweeten vil informere tilhengerne om det nye innleggets tittel. Forfatter: Gabriel Cirtea Versjon: 1.0 Forfatter URI: http://www.google.com/ * /
WordPress forventer at denne informasjonen skal være til stede i hovedfilen til pluginet. Her definerte vi pluginens navn, det er URI (som for øyeblikket peker til Google siden vi ikke utviklet et nettsted for pluginet). Også en pluginbeskrivelse, forfatter og versjon er gitt. Dette er den eneste informasjonen som kreves for å utvikle et plugin. Selvfølgelig vil et slikt plugin ikke gjøre noe, men vil være tilstede i pluginlisten på WordPress-siden din.
Gå videre og sjekk dette ... Lagre filen, logg inn på nettstedet ditt og gå til plugin-siden. Du bør se noe som i bildet nedenfor:
Vår arbeiderklasse har to oppgaver. Man vil være å initialisere TwitterOAuth-klassen og logge inn på søknaden, og den andre vil være å utføre tweet som kunngjør verden om vårt nye innlegg på WordPress.
Vi vil lagre i klassen som konstanter nøklene vi fikk fra vår Twitter-applikasjon. Også vi vil ha en beskyttet variabel som lagrer tilkoblingen til Twitter. Denne erklæringsdelen av vår klasse ser ut som:
// constants definert for å få tilgang til TwitterOAuth klassen const CONSUMER_KEY = 'your_consumer_key_here'; const CONSUMER_SECRET = 'your_consumer_secret_here'; const ACCESS_TOKEN = 'your_access_token_here'; const ACCESS_TOKEN_SECRET = 'your_access_token_secret_here'; // klassevariabler beskyttet statisk $ tilkobling;
Init-funksjonen er ansvarlig for å opprette en forekomst av TwitterOAurh-klassen og lagre konstruktørens retur i $ -forbindelsesvariabelen. Koden er følgende:
offentlig statisk funksjon init () self :: $ connection = ny TwitterOAuth (selv :: CONSUMER_KEY, selv :: CONSUMER_SECRET, selv :: ACCESS_TOKEN, selv :: ACCESS_TOKEN_SECRET);
Tweet-funksjonen er koblet til WordPress save_post-handlingen og mottar som en parameter post-ID. Med det post-IDet får det innleggets innhold som en matrise. Vi bruker denne gruppen til å få posttittelen som vi bruker til tweeting basert på $ -forbindelsesvariabelen lagret i klassen.
offentlig statisk funksjon tweet ($ postID) // få postdata $ post = get_post ($ postID); // send en tweet forespørsel selv: $ connection-> post ('statuses / update', array ('status' => $ post-> post_title));
Den komplette koden til vår arbeiderklasse ser ut som følgende:
/ ** * klasse TwitterCommands * * Denne klassen er ment å være et grensesnitt mellom vårt Twitter-plugin * og twitteroauth-klassen laget av Abraham Williams. * * Det vil opprette en forekomst av TwitterOAuth-klassen og sende til den * nødvendige kommandoer som trengs for å plassere en tweet når et nytt innlegg legges til * på WordPress-siden. * / klasse TwitterCommands // konstanter definert for å få tilgang til TwitterOAuth klassen const CONSUMER_KEY = 'your_consumer_key_here'; const CONSUMER_SECRET = 'your_consumer_secret_here'; const ACCESS_TOKEN = 'your_access_token_here'; const ACCESS_TOKEN_SECRET = 'your_access_token_secret_here'; // klassevariabler beskyttet statisk $ tilkobling; offentlig statisk funksjon init () self :: $ connection = ny TwitterOAuth (selv :: CONSUMER_KEY, selv :: CONSUMER_SECRET, selv :: ACCESS_TOKEN, selv :: ACCESS_TOKEN_SECRET); tweet for offentlig statisk funksjon ($ postID) $ post = get_post ($ postID); selv: $ connection-> post ('statuses / update', array ('status' => $ post-> post_title));
Å koble til WordPress betyr at WordPress kan ringe til dine funksjoner når en bestemt hendelse oppstår. Det kan gjøres i to forskjellige moduser: ved å bruke filtre og ved hjelp av handlinger. Funksjonen du bruker til å koble inn, er enten add_action eller add_filter. Hvilken du bør bruke er spesifisert i WordPress-dokumentasjonen. Hvis hendelsen du vil koble til er en handling, bruk deretter add_action ellers bruk add filter.
For vår Twitter-plugin hekser vi på to hendelser: init-handlingen og save_post-handlingen. Init-handlingen kalles når siden er lastet, og vi vil bruke denne handlingen for å koble til Twitter. Save_post-handlingen kalles når brukeren oppretter og oppdaterer et innlegg slik at vi vil bruke det til Tweet. Koden er oppført nedenfor:
/ * Plugin Name: Tweet Plugin URI: http://www.tipsfor.us/ Beskrivelse: Dette pluginet tweet til forfatterens Twitter-konto når et nytt innlegg er plassert på WordPress. han tweet vil informere tilhengerne om det nye innleggets tittel. Forfatter: Gabriel Cirtea Versjon: 1.0 Forfatter URI: http://www.tipsfor.us/ * / // include () eller kreve () noen nødvendige filer her ... require_once ('lib / twitteroauth / twitteroauth.php'); require_once ('includes / TwitterCommands.php'); // innstillinger og / eller konfigurasjonsdetaljer gå her ... // knytte til WordPress kroker og eventuelle funksjoner som skal kjøre på load add_action ('init', 'TwitterCommands :: init'); add_action ('save_post', 'TwitterCommands :: tweet'); // private interne funksjoner oppkalt med en ledende underskrift // funksjoner kalt av filtre eller handlinger
Koden ovenfor har en liten feil med vilje inne for å skape en øvelse for deg. Som angitt, kalles save_post-handlingen når brukeren oppretter eller oppdaterer et innlegg. Derfor blir det kalt to ganger når brukeren opprettet et innlegg, og innlegget har ingen innhold og når innlegget er lagret. Dette vil føre til tweeting to ganger med en posttittel gitt av WordPress som standard og andre med tittelen gitt av brukeren. Du må fikse denne feilen med en hvilken som helst metode du finner riktig, kanskje til og med legge inn løsningen i kommentarene.
Vel, det var ikke så vanskelig var det? Å skrive dette pluginet var ganske enkelt, og vi lærte også å gjenbruke andres kode. Du kan forlenge dette eksemplet med andre ting du vil gjøre, for eksempel kan du prøve å sende en direkte melding til noen.
Ikke glem å sjekke WordPress og Twitter dokumentasjonen: