Hai appena pubblicato un post incredibile sul tuo blog WordPress e vorresti raccontarlo a tutti. Hai un account Twitter? Quindi sviluppiamo un plugin che ogni volta che salvi un nuovo post su WordPress tweets automaticamente, consentendo a tutti i tuoi follower di sapere che possono trovare qualcosa di nuovo sul tuo blog. Iniziamo!
Mentre ci sono un sacco di ottimi plugin gratuiti su Twitter, è opinione di questo autore che non ci sia davvero alcun rimpiazzo per sapere come fare queste cose da soli. In molti casi, se hai in mente qualcosa di molto specifico, può anche essere molto più semplice scrivere il tuo plugin da zero comunque ... quindi se sei frustrato nel tentativo di hackerare / style / configurare un plugin esistente per lavoro sul tuo sito, questa potrebbe essere la soluzione ai tuoi mal di testa!
Per seguire questo tutorial è necessario quanto segue:
Il processo di acquisizione e pubblicazione dei dati su Twitter richiede i seguenti passaggi:
I precedenti passaggi 2 e 3 possono essere noiosi e possono essere oggetto di un tutorial completo. Pertanto raccomando di utilizzare una libreria che gestisca tali passaggi. Quello che mi piace di più è stato sviluppato da Abraham Williams. È abbastanza facile da usare, il codice è chiaro e facile da capire ed è disponibile su github.
Usando questo plugin possiamo sbarazzarci dei dettagli della connessione a Twitter e ottenere i dati da esso poiché queste attività vengono eseguite dalla classe TwitterOAuth.
Come già discusso, il primo passo per implementare il nostro plugin è registrare una nuova applicazione Twitter. Con questa applicazione otterremo le chiavi di accesso che ci permettono di ottenere i dati twitter richiesti. Navigare nel browser per la pagina degli sviluppatori di Twitter e accedere con il proprio account utente di prova. Quindi fare clic sul collegamento "Crea un'app". Compila il modulo con le informazioni richieste (puoi inserire un segnaposto per il sito web).
È molto importante compilare anche il campo dell'URL di richiamata poiché lasciare vuoto vuol dire che l'applicazione non utilizza le richiamate. Ad ogni modo, non useremo il valore inserito in questo file, ma uno configurato nel plugin di WordPress.
Accetta le regole per gli sviluppatori e inserisci le informazioni captcha, quindi premi il pulsante "Crea la tua applicazione di Twitter". Verrai reindirizzato alla pagina nello screenshot qui sotto:
Scorri verso il basso fino alla sezione "Il tuo token di accesso" e premi il pulsante "Crea i miei token di accesso". Questa azione genererà un token di accesso e un token secret di accesso che, insieme alla chiave del consumatore e al segreto del consumatore, vengono utilizzati per accedere a Twitter e ottenere l'autorizzazione per l'esecuzione delle operazioni sui dati di Twitter.
So che sei ansioso di sporcarti le mani scrivendo il plugin per WordPress. Ma prima diamo un'occhiata a come possiamo usare la classe TwitterOAuth. Prenditi tutto il tempo per studiare il suo file di documentazione e il codice su github. Successivamente svilupperemo insieme una piccola applicazione di simulazione per vedere se siamo in grado di usarla con successo.
I file più importanti della libreria di Abraham sono quelli nella cartella twitteroauth. In realtà quelli sono gli unici file contenenti l'implementazione della libreria. Il resto dei file sono solo un esempio su come utilizzare la classe stessa.
Preparare una struttura di cartelle come di seguito:
Come puoi vedere, per la nostra applicazione di simulazione abbiamo rilevato la struttura dell'intero progetto da github. Lo modificheremo un po 'perché non abbiamo bisogno di tutte le azioni dell'applicazione demo Abraham Williams.
Controlliamo ciò che abbiamo modificato prendendo i file uno per uno.
/ * Carica i file lib richiesti. * / require_once ('twitteroauth / twitteroauth.php'); require_once ( 'config.php'); / * Crea un oggetto TwitterOauth con token utente / utente. * / $ connection = new TwitterOAuth (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); / * Se il metodo è impostato, cambia la chiamata all'API effettuata. Il test è chiamato di default. * / $ content = $ connection-> get ('account / verify_credentials'); $ connection-> post ('statuses / update', array ('status' => 'Testo dello stato qui')); / * Include HTML da visualizzare nella pagina * / include ('html.inc');
Il file index.php è il punto di ingresso della nostra applicazione. Quando visiti il tuo sito nel browser, questo codice viene eseguito. I commenti all'interno lo rendono piuttosto auto-esplicativo. I parametri del costruttore della classe TwitterOAuth sono presi dal file config.php che visiteremo a breve. Dopo aver ottenuto una connessione con Twitter, dobbiamo autorizzarci eseguendo una richiesta di ottenere con i parametri "account / verify_credentials".
Il risultato della richiesta get viene memorizzato nella variabile $ content e verrà visualizzato all'utente dal file html.inc, in modo che venga fornito anche un feedback dell'operazione. Per pubblicare qualcosa su Twitter, eseguiamo una richiesta di posta con il parametro 'status / update' e il testo che dovrebbe essere pubblicato.
/ ** * @file * Una singola posizione per memorizzare la configurazione. * / 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');
Si noti che l'URL di callback OAuth è basato sul sito http://twitter.dev. Questo è il modo in cui ho definito il mio host virtuale in Apache sulla mia macchina. Puoi definirti con un altro nome.
In questo file definiamo le nostre costanti. I primi quattro sono parametri nel costruttore di TwitterOAuth (vedi sopra) e l'ultimo sostituisce l'URL di callback che abbiamo inserito quando definito l'applicazione. Ottieni le prime quattro costanti dall'applicazione Twitter.
Non elencherò qui il codice poiché è abbastanza semplice, puoi ottenerlo dalla sezione Download. Crea un'intestazione per la pagina e nell'area del contenuto mostra solo la variabile $ content. Il nostro scopo è quello di ottenere un tweet su Twitter, quindi questo file è solo per ottenere un feedback sulle nostre richieste.
Grande, la nostra applicazione di simulazione è finita. È tempo di vedere cosa abbiamo fatto finora. Quindi visita il tuo sito nel tuo browser e poi controlla il tuo account Twitter di prova. Dovresti avere un tweet con il testo: "Testo dello stato qui".
Ora che capiamo come usare la libreria, possiamo iniziare a sviluppare il nostro plugin per WordPress.
Dobbiamo seguire alcune regole per integrare il nostro plugin in WordPress. Quindi entra nella cartella di installazione di WordPress e vai alla cartella wp-content / plugins e crea una struttura di directory come quella nella figura seguente:
Il codice della libreria di Abraham Williams verrà archiviato nella cartella lib e nella classe che sviluppiamo nella cartella includes. Nel file index.php nella radice della nostra sottocartella verrà archiviato il codice che attiva l'azione di WordPress.
Finalmente siamo lì. Inizieremo a scrivere il codice del nostro plugin. Alcune considerazioni sulla progettazione: possiamo memorizzare tutto il nostro codice nel file index.php e questa può essere una buona opzione per un semplice plugin. Ma ho deciso di memorizzare il codice in un file separato in una classe (memorizzato nella cartella includes), per due motivi. Il principale è che se facciamo cose come questa estendere la funzionalità del plugin in seguito diventa più facile rispetto ad avere tutto il codice memorizzato in un singolo file. Secondo, voglio mostrarti come il codice del plugin può essere scritto in una classe.
WordPress deve sapere che abbiamo sviluppato un plugin e vorremmo integrarlo con il sistema principale. Questo viene fatto attraverso diverse righe di commenti nel file principale del pugin (nel nostro caso index.php). Apri index.php nel tuo editor preferito e inserisci il seguente codice:
/ * Nome plugin: myTweet Plugin URI: http://www.google.com/ Descrizione: Questo plugin tweet sull'account Twitter dell'autore ogni volta che viene inserito un nuovo post su WordPress. Il tweet informerà i follower sul titolo del nuovo post. Autore: Gabriel Cirtea Versione: 1.0 Autore URI: http://www.google.com/ * /
WordPress si aspetta che queste informazioni siano presenti nel file principale del plugin. Qui abbiamo definito il nome del plugin, è l'URI (che per il momento punta a Google poiché non abbiamo sviluppato un sito per il nostro plugin). Inoltre viene fornita una descrizione del plugin, l'autore e la versione. Questa è l'unica informazione richiesta per sviluppare un plugin. Naturalmente, un tale plugin non farà nulla, ma sarà presente nella lista dei plugin del tuo sito WordPress.
Vai avanti e controlla questo ... Salva il tuo file, accedi al tuo sito e vai alla pagina dei plugin. Dovresti vedere qualcosa di simile nella foto qui sotto:
La nostra classe operaia avrà due compiti. Uno sarà quello di inizializzare la classe TwitterOAuth e di accedere all'applicazione e il secondo sarà quello di eseguire il tweet che annuncia il mondo sul nostro nuovo post su WordPress.
Memorizzeremo nella classe come costanti le chiavi che abbiamo ottenuto dalla nostra applicazione Twitter. Inoltre avremo una variabile protetta che memorizza la connessione a Twitter. Questa dichiarazione parte della nostra classe assomiglia a:
// costanti definite per accedere alla classe 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'; // class variables protected static $ connection;
La funzione init è responsabile della creazione di un'istanza della classe TwitterOAurh e dell'archiviazione del rendimento del costruttore nella variabile $ connection. Il codice è il seguente:
funzione statica pubblica init () self :: $ connection = new TwitterOAuth (self :: CONSUMER_KEY, self :: CONSUMER_SECRET, self :: ACCESS_TOKEN, self :: ACCESS_TOKEN_SECRET);
La funzione tweet è agganciata all'azione save_post di WordPress e riceve come parametro l'id post. Con quel post ID ottiene il contenuto del post come una matrice. Usiamo questo array per ottenere il titolo del post che poi useremo per tweeting basato sulla variabile di connessione $ memorizzata nella classe.
funzione pubblica statica tweet ($ postID) // ottieni dati post $ post = get_post ($ postID); // invia una richiesta tweet self :: $ connection-> post ('statuses / update', array ('status' => $ post-> post_title));
Il codice completo della nostra classe operaia ha il seguente aspetto:
/ ** * class TwitterCommands * * Questa classe intende essere un'interfaccia tra il nostro plug-in Twitter * e la classe twitteroauth creata da Abraham Williams. * * Creerà un'istanza della classe TwitterOAuth e invierà ad essa i * comandi richiesti necessari per piazzare un tweet quando un nuovo post viene aggiunto al * sito WordPress. * / class TwitterCommands // costanti definite per accedere alla classe 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'; // class variables protected static $ connection; funzione statica pubblica init () self :: $ connection = new TwitterOAuth (self :: CONSUMER_KEY, self :: CONSUMER_SECRET, self :: ACCESS_TOKEN, self :: ACCESS_TOKEN_SECRET); funzione pubblica statica tweet ($ postID) $ post = get_post ($ postID); self :: $ connection-> post ('statuses / update', array ('status' => $ post-> post_title));
Collegarsi a WordPress significa fare in modo che WordPress richiami le funzioni quando si verifica un evento specifico. Può essere fatto in due diverse modalità: usando i filtri e usando le azioni. La funzione che usi per agganciare è add_action o add_filter. Quale si dovrebbe usare è specificato nella documentazione di WordPress. Se l'evento a cui si desidera eseguire il hook è un'azione, quindi utilizzare add_action altrimenti utilizzare Aggiungi filtro.
Per il nostro plugin Twitter colleghiamo a due eventi: l'azione init e l'azione save_post. L'azione init viene chiamata quando la pagina viene caricata e useremo questa azione per connettersi a Twitter. L'azione save_post viene chiamata ogni volta che l'utente crea e aggiorna un post, quindi lo useremo per twittare. Il codice è elencato di seguito:
/ * Nome plugin: Tweet Plugin URI: http://www.tipsfor.us/ Descrizione: Questo plugin tweet sull'account Twitter dell'autore ogni volta che viene inserito un nuovo post su WordPress. tweet informerà i follower sul titolo del nuovo post. Autore: Gabriel Cirtea Versione: 1.0 Autore URI: http://www.tipsfor.us/ * / // include () o require () tutti i file necessari qui ... require_once ('lib / twitteroauth / twitteroauth.php'); require_once ('includes / TwitterCommands.php'); // le impostazioni e / oi dettagli di configurazione vanno qui ... // collegano gli hook di WordPress e tutte le funzioni che dovrebbero essere eseguite su load add_action ('init', 'TwitterCommands :: init'); add_action ('save_post', 'TwitterCommands :: tweet'); // funzioni interne private denominate con funzioni di sottolineatura // principali chiamate dai filtri o dalle azioni
Il codice sopra ha un piccolo bug lasciato intenzionalmente all'interno per creare un esercizio per te. Come specificato, l'azione save_post viene chiamata quando l'utente crea o aggiorna un post. Pertanto verrà chiamato due volte quando l'utente ha creato un post e il post non ha contenuto e quando il post viene salvato. Questo porterà a twittare due volte uno con un titolo post fornito da WordPress di default e il secondo con il titolo dato dall'utente. Devi correggere questo bug usando qualsiasi metodo che ritieni appropriato, magari anche pubblicare la tua soluzione nei commenti.
Beh, non è stato così difficile? Scrivere questo plugin è stato abbastanza semplice e abbiamo anche imparato a riutilizzare il codice di altre persone. Puoi estendere questo esempio con altre cose che vuoi fare, ad esempio puoi provare a inviare un messaggio diretto a qualcuno.
Non dimenticare di controllare la documentazione di WordPress e Twitter: