Tocmai ați publicat un articol uimitor pe blogul dvs. WordPress și ați vrea să îi spuneți tuturor despre asta. Aveți un cont Twitter? Apoi, să dezvoltăm un plugin care, de fiecare dată când salvezi o postare nouă pe WordPress, tweets automat, permițând tuturor adepților să știe că pot găsi ceva nou pe blogul tău. Să începem!
În timp ce există o mulțime de plug-in-uri gratuite gratuite pe Twitter, este opinia autorilor că nu există nicio înlocuire pentru a ști cum să faceți singuri acest lucru. În multe cazuri, dacă aveți ceva foarte specific în minte, poate fi mult mai ușor doar să vă scrieți propriul plugin de la zero oricum ... deci, dacă sunteți frustrați de încercarea de a hack / style / configure un plugin existent lucrați pe site-ul dvs., aceasta ar putea fi soluția pentru durerile de cap!
Pentru a urmări acest tutorial aveți nevoie de următoarele:
Procesul de a obține și de a posta date pe Twitter necesită următorii pași:
Pașii 2 și 3 de mai sus pot fi plictisitori și pot fi un subiect pentru un tutorial complet. Prin urmare, vă recomand să folosiți o bibliotecă care gestionează acești pași. Cel pe care-mi place cel mai mult a fost dezvoltat de Abraham Williams. Este destul de ușor de utilizat, codul este clar și ușor de înțeles și este disponibil pe github.
Folosind acest plugin putem să scăpăm de detaliile conectării la Twitter și să obținem date din el, deoarece aceste sarcini sunt realizate de clasa TwitterOAuth.
Așa cum am discutat deja, primul pas pentru implementarea plugin-ului nostru este de a înregistra o nouă aplicație Twitter. Cu această aplicație vom obține chei de acces care ne permit să obținem datele de twitter necesare. Navigați în browserul dvs. pe pagina de dezvoltatori Twitter și conectați-vă cu contul dvs. de utilizator de testare. Apoi dați clic pe linkul "Creați o aplicație". Completați formularul cu informațiile necesare (puteți pune un substituent pentru site-ul web).
Este foarte important să completați și câmpul URL pentru inversarea apelului, deoarece lăsându-l necompletat va restricționa utilizarea aplicației de apel invers. Oricum, nu vom folosi valoarea introdusă în acest dosar, dar una configurată în pluginul WordPress.
Acceptați regulile dezvoltatorului și completați informațiile despre captcha, apoi apăsați butonul "Creați aplicația Twitter". Veți fi redirecționat (ă) la pagina din ecranul de mai jos:
Derulați în jos până la secțiunea "Indicația dvs. de acces" și apăsați butonul "Creați-mi token-urile de acces". Această acțiune va genera un jeton de acces și un secret de acces care, împreună cu cheia de consum și secretul consumatorului, sunt utilizate pentru a vă conecta la Twitter și pentru a obține autorizație pentru efectuarea operațiilor pe datele de pe Twitter.
Știu că sunteți nerăbdători să vă murdăriți mâinile scriind pluginul WordPress. Dar, înainte de a arunca o privire asupra modului în care putem folosi clasa TwitterOAuth. Ia-ți timp să studiezi dosarul de documentare și codul pe github. După aceea, vom dezvolta împreună o aplicație machetă mică pentru a vedea dacă o putem folosi cu succes.
Cele mai importante fișiere din biblioteca lui Abraham sunt cele din dosarul twitteroauth. De fapt, acestea sunt singurele dosare care conțin implementarea bibliotecii. Restul fișierelor reprezintă doar un exemplu de utilizare a clasei în sine.
Pregătiți o structură de directoare ca mai jos:
După cum puteți vedea, pentru aplicația noastră de răsturnare am preluat structura întregului proiect de la github. Îl vom modifica puțin, deoarece nu avem nevoie de toate acțiunile din aplicația demo Abraham Williams implementată.
Să verificăm ce am modificat luând fișierele unul câte unul.
/ * Încărcați fișiere lib necesare. * / require_once ('twitteroauth / twitteroauth.php'); require_once ( 'config.php'); / * Creați un obiect TwitterOauth cu jetoanele de utilizator / utilizator. * / $ connection = new TwitterOAuth (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); / * Dacă este setată metoda, modificați apelul API. Testarea este apelată implicit. * / $ content = $ connection-> get ('account / verify_credentials'); $ link-> post ('statuses / update', array ('status' => 'Text de status here')); / * Includeți HTML pentru afișare pe pagină * / include ('html.inc');
Fișierul index.php este punctul de intrare al aplicației noastre. Când vizitați site-ul în browser, acest cod este executat. Comentariile din interior o fac destul de explicativă. Parametrii constructorului de clasă TwitterOAuth sunt preluați din fișierul config.php pe care îl vom vizita în scurt timp. După ce ați obținut o conexiune la Twitter, trebuie să ne autorizăm prin efectuarea unei solicitări de solicitare cu parametrii "account / verify_credentials".
Rezultatul cererii de solicitare este stocat în variabila de conținut $ și va fi afișat utilizatorului prin fișierul html.inc, astfel încât să fie furnizat și un feedback despre operație. Pentru a posta ceva în Twitter, efectuăm o solicitare de postare cu parametrul "stadii / actualizare" și textul care ar trebui să fie postat.
/ ** * @ file * O singură locație pentru stocarea configurației. * / 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');
Rețineți că adresa URL de apel invers OAuth se bazează pe site-ul http://twitter.dev. Acesta este modul în care mi-am definit gazda virtuală în apache pe mașina mea. Vă puteți defini cu un alt nume.
În acest fișier definim constantele noastre. Primele patru sunt parametrii din constructorul TwitterOAuth (vezi mai sus), iar ultima înlocuiește adresa URL de retur apelată la definirea aplicației. Primiți primele patru constante din aplicația Twitter.
Nu voi lista codul aici, deoarece este destul de simplu, îl puteți obține din secțiunea Descărcări. Creează un antet pentru pagină și în zona de conținut doar afișează variabila conținutului $. Scopul nostru este de a obține un tweet pe Twitter, deci acest fișier este doar pentru a obține un feedback despre cererile noastre.
Mare, cererea noastră de machetă este terminată. E timpul să vedem ce am făcut până acum. Deci, vizitați site-ul dvs. în browser-ul dvs. și apoi verificați-vă contul Twitter de testare. Ar trebui să aveți un tweet acolo cu textul: "Text of status here".
Acum, când înțelegem cum să folosim biblioteca, putem începe să dezvoltăm pluginul nostru WordPress.
Trebuie să respectăm câteva reguli pentru a integra pluginul nostru în WordPress. Deci, intrați în dosarul de instalare WordPress și mergeți la folderul wp-content / plugins și creați o structură de directoare ca cea din imaginea de mai jos:
Codul bibliotecii lui Abraham Williams va fi stocat în folderul lib și în clasa pe care o dezvoltăm în directorul include. În fișierul index.php din rădăcina subfolderului nostru vom stoca codul care declanșează acțiunea WordPress.
În cele din urmă suntem acolo. Vom începe să scriem codul pluginului nostru. Unele considerente de proiectare: putem stoca întregul cod în fișierul index.php și aceasta poate fi o opțiune bună pentru un plugin simplu. Dar am decis să stochez codul într-un fișier separat într-o clasă (stocată în folderul inclus), din două motive. Principala este că, dacă facem lucruri de genul asta, extinderea funcționalității plugin-ului devine mai ușoară în comparație cu a avea toate stocurile de cod într-un singur fișier. În al doilea rând, vreau să vă arăt cum codul plugin-ului poate fi scris într-o clasă.
WordPress trebuie să știe că am dezvoltat un plugin și dorim să îl integrăm cu sistemul principal. Acest lucru se face prin câteva linii de comentarii din fișierul principal al puginului (în cazul nostru index.php). Deschideți index.php în editorul dvs. preferat și introduceți următorul cod:
/ * Plugin Name: URI Plugin-ul myTweet: http://www.google.com/ Descriere: Acest plugin va tweet în contul autorului Twitter ori de câte ori o nouă postare este plasată pe WordPress. Mesajul tweet va informa adepții despre titlul postului nou. Autor: Gabriel Cirtea Versiune: 1.0 URI autor: http://www.google.com/ *
WordPress se așteaptă ca aceste informații să fie prezente în fișierul principal al pluginului. Aici am definit numele plugin-ului, acesta este URI (care pentru moment indică Google de când nu am dezvoltat un site pentru plugin-ul nostru). De asemenea, este furnizată o descriere a pluginului, autor și versiune. Acestea sunt singurele informații necesare pentru a dezvolta un plugin. Desigur, un astfel de plugin nu va face nimic, dar va fi prezent în lista de pluginuri a site-ului dvs. WordPress.
Continuați și verificați acest lucru ... Salvați fișierul, conectați-vă la site-ul dvs. și accesați pagina de pluginuri. Ar trebui să vedeți ceva asemănător în imaginea de mai jos:
Clasa muncitorilor noștri va avea două sarcini. Unul va fi inițializarea clasei TwitterOAuth și conectarea la aplicație, iar al doilea va fi de a efectua tweet-ul care anunță lumea despre noul nostru post pe WordPress.
Vom păstra în clasă ca constante cheile primite de la aplicația noastră Twitter. De asemenea, vom avea o variabilă protejată care stochează conexiunea la Twitter. Această parte declarată a clasei noastre arată astfel:
// constantele definite pentru accesarea clasei TwitterOAuth 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'; // variabile de clasă protejate static $ connection;
Funcția init este responsabilă pentru crearea unei instanțe a clasei TwitterOAurh și stocarea returnării constructorului în variabila de conectare $. Codul este următorul:
funcția statică publică init () self :: $ connection = nou TwitterOAuth (auto :: CONSUMER_KEY, self :: CONSUMER_SECRET, self :: ACCESS_TOKEN, self :: ACCESS_TOKEN_SECRET);
Funcția tweet este conectată la acțiunea WordPress save_post și primește ca parametru id post. Cu id-ul postului devine conținutul mesajului ca un matrice. Utilizăm această matrice pentru a obține titlul postului pe care apoi îl folosim pentru tweeting bazat pe variabila de conexiune $ stocată în clasă.
funcția publică statică tweet ($ postID) // obține date post $ post = get_post ($ postID); // trimite o cerere de tweet auto :: $ connection-> post ('statuses / update', array ('status' => $ post-> post_title));
Codul complet al clasei muncitorului nostru arată după cum urmează:
/ ** * class TwitterCommands * * Această clasă este destinată să fie o interfață între plugin-ul nostru Twitter * și clasa twitteroauth creată de Abraham Williams. * * Va crea o instanță a clasei TwitterOAuth și îi va trimite * comenzile necesare pentru a plasa un tweet atunci când o postare nouă este adăugată la * site-ul WordPress. * / class TwitterCommands // constante definite pentru accesarea clasei TwitterOAuth 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'; // variabile de clasă protejate static $ connection; funcția statică publică init () self :: $ connection = nou TwitterOAuth (auto :: CONSUMER_KEY, self :: CONSUMER_SECRET, self :: ACCESS_TOKEN, self :: ACCESS_TOKEN_SECRET); funcția publică statică tweet ($ postID) $ post = get_post ($ postID); auto :: $ conexiune-> post ('statuses / update', array ('status' => $ post-> post_title));
Încadrarea în WordPress înseamnă a face WordPress să vă apeleze funcțiile când apare un anumit eveniment. Se poate face în două moduri diferite: prin utilizarea filtrelor și prin utilizarea acțiunilor. Funcția pe care o folosiți pentru a vă conecta este fie add_action, fie add_filter. Care dintre cele pe care ar trebui să le utilizați este specificată în documentația WordPress. Dacă evenimentul la care doriți să vă conectați este o acțiune, utilizați add_action în caz contrar utilizați adăugați filtru.
Pentru pluginul nostru Twitter, am introdus două evenimente: acțiunea inițială și acțiunea save_post. Acțiunea inițială este apelată când pagina este încărcată și vom folosi această acțiune pentru a vă conecta la Twitter. Acțiunea save_post se numește ori de câte ori utilizatorul creează și actualizează o postare, astfel încât să o folosim pentru a face Twitter. Codul este enumerat mai jos:
/ * Plugin Name: Tweet Plugin URI: http://www.tipsfor.us/ Descriere: Acest plugin va tweet la contul autorului de Twitter ori de câte ori o nouă postare este plasată pe WordPress. el tweet va informa urmasii despre titlul noului post. Autor: Gabriel Cirtea Versiune: 1.0 URI autor: http://www.tipsfor.us/ * / // include () sau cere () fisierele necesare aici ... require_once ('lib / twitteroauth / twitteroauth.php'); require_once ('include / TwitterCommands.php'); // setările și / sau detaliile de configurare merg aici ... // legătura în cârligele WordPress și orice funcții care ar trebui să ruleze pe sarcină add_action ('init', 'TwitterCommands :: init'); add_action ('save_post', 'TwitterCommands :: tweet'); // funcții interne private numite cu un subliniere de frunte // funcții numite de filtre sau acțiuni
Codul de mai sus are un bug mic lăsat intenționat în interior pentru a crea un exercițiu pentru dvs. După cum am specificat, acțiunea save_post se numește atunci când utilizatorul creează sau actualizează o postare. Prin urmare, acesta va fi sunat de două ori atunci când utilizatorul a creat o postare, iar postarea nu are conținut și când postarea este salvată. Acest lucru va duce la tweeting de două ori unul cu un titlu post dat de WordPress în mod implicit și al doilea cu titlul dat de utilizator. Trebuie să remediați această eroare folosind orice metodă pe care o considerați potrivită, poate chiar să postați soluția în comentarii.
Nu a fost atât de greu? Scrierea acestui plugin a fost destul de ușoară și am învățat, de asemenea, cum să reutilizăm codul altor persoane. Puteți extinde acest exemplu cu alte lucruri pe care doriți să le faceți, de exemplu, puteți încerca să trimiteți un mesaj direct cuiva.
Nu uitați să verificați documentația WordPress și Twitter: