Il tuo primo plugin WordPress ottimizzazione semplice

WordPress è la più grande piattaforma di blogging disponibile su Internet oggi; e con il rilascio ufficiale della terza versione dietro l'angolo, diventerà sempre più grande. Di conseguenza, nei prossimi tutorial indipendenti, impareremo i dettagli dello sviluppo di plugin per WordPress, iniziando con la creazione del nostro primo plug-in semplice, "Ottimizzazione semplice".


Passaggio 0 Prima di iniziare

Questo tutorial assumerà che tu abbia almeno una conoscenza da principiante di PHP e della sintassi di WordPress. Anche se copriremo tutto, alcune conoscenze in anticipo ti aiuteranno a cogliere i concetti molto più facilmente. Suppongo anche che tu abbia una configurazione del blog WP e sia pronta per partire.


Passo 1. Che cosa fa il nostro plugin

Il primo passo, quando si scrive un plugin WP, è determinare tutto ciò che si vuole che faccia. Poiché questo è il nostro primo plugin, non faremo nulla di troppo drastico. Creiamo qualcosa che acceleri il nostro blog; le nostre pagine renderanno più veloce e faremo anche un po 'di SEO per migliorare il nostro ranking di ricerca e reperibilità.

"Crea sempre un elenco di ciò che vuoi che il tuo plugin faccia effettivamente prima di scrivere qualsiasi codice!"

Rimuovi i meta tag inutili:

  • "Rsd_link" - Link di scoperta davvero semplice
  • "wlwmanifest_link"- Collegamento a Windows Live Writer
  • "Wp_generator" - Numero di versione di WordPress

Rimuovi i filtri non necessari:

  • "Wptexturize" - Citazioni ricci
  • "wp_filter_kses" - HTML nei profili utente

SEO:

  • Inserisci i tag post in come parole chiave
  • Inserisci estratto di post in come descrizione

Passaggio 2. Posa del fondamento

Per iniziare, vai alla cartella dei plug-in ("/ wp-content / plugins /") e crea una nuova cartella. Chiameremo la nostra "ottimizzazione semplice". Quindi, all'interno di questa cartella avremo bisogno di creare due file. Il primo sarà il vero e proprio file plugin (chiamato "Main.php"), e il secondo sarà il README obbligatorio ("Readme.txt"). Per il momento lasceremo readme.txt vuoto; quindi apri main.php nel tuo editor di testo preferito e copia nel codice qui sotto.

 

Questo testo è il minimo indispensabile per la visualizzazione di un plug-in nella directory del plugin di WordPress. Ovviamente dovrai riempire ogni parte come meglio credi.


Passaggio 3. Aggiunta di funzionalità

Le prime due funzionalità che implementeremo saranno anche le più semplici. Per impostazione predefinita, WordPress aggiunge diversi meta-tag al sezione del tuo blog, ma il semplice fatto è che questi meta-tag non hanno assolutamente alcun valore; quindi semplicemente impediremo a WordPress di aggiungerli. Ogni volta che WordPress esegue un'azione, viene chiamata a filtro o un azione, e possiamo rimuovere o manipolare questi filtri e azioni (puoi trovare un elenco di tutti i filtri qui e tutte le azioni qui). In questo caso, vogliamo rimuovere le varie azioni che aggiungono quei meta-tag.

Per fare ciò, usiamo una funzione molto semplice chiamata "Remove_action ( 'azione', 'funzione')". Questa funzione rimuoverà la funzione dichiarata nel secondo parametro dall'azione, il primo parametro.

 // Pulisci wp_head // Rimuovi Link di scoperta davvero semplice remove_action ('wp_head', 'rsd_link'); // Rimuovi il collegamento Windows Live Writer remove_action ('wp_head', 'wlwmanifest_link'); // Rimuovi il numero di versione remove_action ('wp_head', 'wp_generator');

Lo stesso identico principio si applica ai due filtri che rimuoveremo:

 // Rimuovi le virgolette rimuovi remove_filter ('the_content', 'wptexturize'); remove_filter ('comment_text', 'wptexturize'); // Consenti HTML nei profili utente remove_filter ('pre_user_description', 'wp_filter_kses');

Passaggio 4. SEO

Ora che abbiamo eliminato quel problema, assicuriamoci che il nostro blog abbia un SEO di base; nel senso, assicuriamoci di avere parole chiave per pagina, che corrispondono a quella pagina e modificare la descrizione in modo che corrisponda maggiormente all'articolo. Per le nostre parole chiave, prenderemo i tag della pagina / post corrente. Questo è reso super semplice dalla funzione "wp_get_post_tags ()". wp_get_post_tags restituirà una serie di tag dal post corrente. Possiamo quindi facilmente formattare questo array in una stringa e posizionarlo all'interno della nostra intestazione (all'interno della funzione "Wp_head ()", che ogni tema dovrebbe avere già in esso allegando la nostra funzione all'azione wp_head.

Iniziamo creando una nuova funzione, tags_to_keywords (), e, all'interno di questa funzione, scriveremo un semplice se la dichiarazione, che controlla se la pagina corrente è un singolo post o pagina (usando le funzioni di WP: is_single () e is_page ()). Successivamente, creeremo una variabile all'interno di questa istruzione if, chiamata $ tags, e impostare il suo contenuto per la funzione wp_get_post_tags (); tuttavia, affinché questa funzione funzioni, è necessario passare un parametro di "post_id". Il modo più semplice per ottenerlo è quello di globalizzare la variabile WP $ postale che contiene l'ID del post ($ Post-> ID, $ post è un oggetto ed è per questo che chiamiamo i suoi valori in questo modo).

 // SEO // aggiungi tag come parole chiave function tags_to_keywords () global $ post; if (is_single () || is_page ()) $ tags = wp_get_post_tags ($ post-> ID); 

Successivamente, useremo a per ciascuno filtrare attraverso i dati $ tags e creare un nuovo array con solo le informazioni che vogliamo ($ tag_array). Successivamente, imploderemo l'array in una stringa e separeremo ogni elemento dall'array con una virgola e uno spazio ($ tag_string). Quindi, creeremo un'altra istruzione if che controlla se $ tag_string ha un valore (ovvero, abbiamo eventuali tag per il post) e se lo fa, echo l'HTML finale.

 funzione tags_to_keywords () global $ post; if (is_single () || is_page ()) $ tags = wp_get_post_tags ($ post-> ID); foreach ($ tag come $ tag) $ tag_array [] = $ tag-> nome;  $ tag_string = implode (',', $ tag_array); if ($ tag_string! == ") echo"\ r \ n "; 

L'ultima cosa che dobbiamo fare ora è allegare la nostra nuova funzione con l'azione wp_head. Per fare questo, chiameremo add_action ( 'azione', 'funzione'), e passa i parametri "wp_head" e "tags_to_keywords" (in quest'ordine).

 add_action ( 'wp_head', 'tags_to_keywords'); 

Per aumentare ulteriormente il nostro SEO, aggiungeremo anche i nostri meta-dati di descrizione all'intestazione, usando lo stesso metodo delle parole chiave. Una volta che l'istruzione if è stata riscritta, creeremo una nuova variabile $ all_post_content e riempirlo usando la funzione WP wp_get_single_post () (e passa il parametro di $ post-> ID). Questo ci darà un oggetto pieno di tutti i dati sul nostro post. Con questa variabile, possiamo creare una descrizione usando il contenuto reale del post, ma lo accorceremo a un centinaio di caratteri usando la funzione substr ($ Estratto). E quindi, ci limiteremo a echeggiare l'HTML con l'estratto scritto. (Facoltativamente, puoi anche aggiungere un altro dichiarazione, e fai eco alla descrizione del tuo blog utilizzando la funzione get_bloginfo ( 'descrizione').)

 // aggiungi tranne come descrizione function excerpt_to_description () global $ post; if (is_single () || is_page ()) $ all_post_content = wp_get_single_post ($ post-> ID); $ excerpt = substr ($ all_post_content-> post_content, 0, 100). ' [...] '; eco "\ r \ n "; else echo"\ r \ n "; add_action ('wp_head', 'excerpt_to_description');

Passaggio 5. Ottimizzazione del database

La funzionalità finale del nostro plugin ottimizzerà le nostre tabelle di database rimuovendo il sovraccarico (dati inutili / in eccesso in una tabella SQL creata manipolando il database). Per iniziare, creeremo una nuova funzione (optimize_database), e al suo interno, chiameremo la variabile globale WPDB ($ wpdb). In questo modo, possiamo interagire con il database, senza dover reinserire i nostri dettagli di autenticazione. $ wpdb ha diversi metodi che puoi usare per interagire e recuperare informazioni dal database (elenco completo qui), ma useremo solo uno, get_results. L'utilizzo di get_results con i parametri di "SHOW TABLES" e "ARRAY_A" ci restituirà un array associativo di tutti i nomi delle tabelle nel database. A quel punto, possiamo usare un foreach per scorrere in loop ciascuno dei valori dell'array (usando array_values per ottenere il nome della tabella, a causa di come è stratificato dalla funzione) e utilizzare un altro metodo $ wpdb, eseguire una query per eseguire il comando optimize ("OPTIMIZE TABLE _____").

 // Ottimizza la funzione Database optimize_database () global $ wpdb; $ all_tables = $ wpdb-> get_results ('SHOW TABLES', ARRAY_A); foreach ($ all_tables as $ tables) $ table = array_values ​​($ tables); $ wpdb-> query ("OPTIMIZE TABLE". $ table [0]);  

Mentre questa funzione funziona, non funzionerà mai perché WordPress non ha modo di sapere come eseguirlo. Fortunatamente, WordPress ha una funzionalità chiamata cron, che pianifica le funzioni da eseguire a intervalli specifici (giornalieri, settimanali, ecc ...); questo è perfetto per noi, dal momento che vogliamo ottimizzare di frequente il nostro database. Per usare Cron, creeremo una nuova funzione (simple_optimization_cron_on), e riempirlo con un'altra chiamata di funzione a wp_schedule_event (). Per funzionare, wp_schedule_event ha bisogno di tre cose: un tempo di esecuzione, un intervallo tra ogni esecuzione e una funzione da chiamare; quindi passeremo i parametri: 'time ()' (supponiamo che ogni volta che l'evento cron viene creato sia un buon momento per chiamare la funzione), 'daily', 'optimize_database' in quest'ordine.

 function simple_optimization_cron_on () wp_schedule_event (time (), 'daily', 'optimize_database');  

Grande, ora abbiamo il nostro optimize_database funzione aggiunta all'elenco cron di WP, o lo faremo se dovessimo chiamare il simple_optimization_cron_on funzione. È davvero pericoloso ed è una cattiva pratica chiamare le proprie funzioni di aggiunta di eventi, perché attraverso un sistema arbitrario di eventi, potrebbe causare il richiamo della funzione più volte. WordPress ha un set di hook specifici per i plugin per risolvere questo problema: register_activation_hook e register_deactivation_hook. Queste funzioni vengono chiamate quando un plug-in è attivato (attivato) e disattivato (disattivato). In questo modo, la nostra funzione cron può essere aggiunta solo una volta. Ora, abbiamo la possibilità di rimuovere l'evento cron se il plugin smette di essere utilizzato. Per funzionare, queste funzioni necessitano di due informazioni: l'url del file che ha le funzioni di attivazione e disattivazione (il 99% delle volte "__FILE__" funzionerà perfettamente qui) e il nome della funzione di attivazione e disattivazione. Creeremo anche una nuova funzione (simple_optimization_cron_off), e riempirlo con una chiamata a un'altra funzione (wp_clear_scheduled_hook ('optimize_database')) per cancellare il nostro evento cron.

 function simple_optimization_cron_off () wp_clear_scheduled_hook ('optimize_database');  register_activation_hook (__ FILE __, 'simple_optimization_cron_on'); register_deactivation_hook (__ FILE __, 'simple_optimization_cron_off'); 

Passaggio 6. Compilare il file Leggimi

L'ultima cosa che dobbiamo fare per il nostro nuovo plugin è compilare il file readme.txt. Il file readme.txt viene utilizzato dalla directory Plugin di WordPress per visualizzare tutte le informazioni fornite sul plug-in. Il modo migliore per imparare a scrivere un file readme.txt efficace è scaricare l'impostazione predefinita da WP e modificarla di conseguenza per adattarla al tuo plug-in. Dal momento che il nostro era così semplicistico, questo è quello che ho trovato personalmente:

 === Ottimizzazione semplice === Collaboratori: Jonathan Wolfe Plugin link: http://net.tutsplus.com/ Tag: semplice, ottimizzazione, parole chiave, tag, descrizione, SEO, ottimizzazione, database Richiede almeno: 2.5.1 Testato fino a: 2.9.2 Tag stabile: trunk Silent aggiunge diverse funzioni di ottimizzazione al back-end di WordPress per rendere più veloce il tuo blog o il tuo sito. == Descrizione == L'ottimizzazione semplice aggiunge diverse funzioni a WordPress che aiutano a tagliare il grasso dal sistema e anche a ripulire dopo se stesso un po 'tutto portando a un tempo di caricamento più veloce per il tuo blog o sito web. ** Funzionalità ** _Rimuovi meta tag inutili: _ * "rsd_link" - Really Simple Discovery Link * "wlwmanifest_link" - Collegamento a Windows Live Writer * "wp_generator" - Numero di versione di WordPress _Rimuovi filtri inutili: _ * "wptexturize" - currly quotes * "wp_filter_kses" - HTML nei profili utente _SEO: _ * Inserisci i tag post in  come parole chiave _ Ottimizza radicalmente il database_ == Installazione == 1. Scarica, decomprimi e carica nella directory dei plugin di WordPress 2. attiva il plugin all'interno di WordPress Administration 

Questo è tutto!

Hai appena scritto con successo il tuo primo plugin per WordPress, che è funzionante e pronto per la directory dei plugin WP. Lungo la strada, hai imparato a conoscere i filtri e le azioni, usando oggetti globali WP, molto sulla nomenclatura di WordPress, come interagire con il database, gli eventi cron e i ganci di attivazione / disattivazione. Se hai qualche domanda, per favore lascia un commento e ti risponderò il prima possibile.

Il codice finale:

 ID); // ottiene post tag foreach ($ tag come $ tag) // esegue il ciclo di ogni tag $ tag_array [] = $ tag-> nome; // crea un nuovo array con solo i nomi dei tag $ tag_string = implode (',', $ tag_array); // converte array in una stringa separata da virgole if ($ tag_string! == ") // it we have tags echo"\ r \ n "; // aggiungi il meta tag a   add_action ('wp_head', 'tags_to_keywords'); // Aggiungi tag_to_keywords alla funzione wp_head // aggiungi tranne come descrizione function excerpt_to_description () global $ post; // accedi all'oggetto $ post se (is_single () || is_page ()) // Esegui solo su post o pagine $ all_post_content = wp_get_single_post ($ post-> ID); // recupera tutto il contenuto dal post / pagina $ excerpt = substr ($ all_post_content-> post_content, 0, 100). ' [...] '; // ottiene i primi 100 caratteri e aggiunge "[...]" alla fine echo "\ r \ n "; // aggiungi il meta tag a   else // eseguito solo se non un post o un'eco di pagina "\ r \ n "; // aggiungi il meta tag a   add_action ('wp_head', 'excerpt_to_description'); // aggiungi excerpt_to_description alla funzione wp_head // Ottimizza la funzione Database optimize_database () global $ wpdb; // accesso all'oggetto $ wpdb $ all_tables = $ wpdb-> get_results ('SHOW TABLES', ARRAY_A); // richiama tutti i nomi delle tabelle foreach ($ all_tables as $ tables) // cicla attraverso ogni nome di tabella $ table = array_values ​​($ tables); // recupera il nome della tabella dall'array $ wpdb-> query ("OPTIMIZE TABLE". $ table [0]); // esegue il comando di ottimizzazione SQL sulla tabella function simple_optimization_cron_on () wp_schedule_event (time (), 'daily', 'optimize_database'); // rdd optimize_database in wp cron events function simple_optimization_cron_off () wp_clear_scheduled_hook ('optimize_database'); // rimuove optimize_database dagli eventi di wp cron register_activation_hook (__ FILE __, 'simple_optimization_cron_on'); // avvia simple_optimization_cron_on all'attivazione del plugin register_deactivation_hook (__ FILE __, 'simple_optimization_cron_off'); // lancia simple_optimization_cron_off alla disattivazione del plugin?>