Una delle funzionalità principali fornite da WordPress nell'estensione della sua funzionalità è la sua Meta Box API. Queste caselle consentono di aggiungere facilmente dati aggiuntivi ai tuoi contenuti. Ad esempio, il Post Tags meta box ti consente di impostare i tag per il tuo post.
In questo articolo, costruiremo un plugin SEO di base che aggiunge una descrizione meta e un tag Open title e description to the capo
elemento delle pagine di WordPress. Nel fare ciò, impareremo anche come creare una meta box personalizzata, come sanificare i dati forniti dall'utente, come salvare i dati in un post o pagina e come recuperare e recuperare i dati salvati.
Perché non spiegherò ogni singolo bit di ciò che i codici usano in questo tutorial, una conoscenza di base dei meta-box e di ciò che le funzioni PHP fanno. Se non hai familiarità con le nozioni di base, allora un ottimo inizio in Come creare WordPress Write / Meta Box personalizzati.
Per prima cosa, dobbiamo decidere dove dovrebbe apparire la meta-box.
Nel nostro plugin, la meta box verrà aggiunta nel inviare
e pagina
schermo. Per ottenere ciò, viene creata una funzione contenente una variabile che memorizza un array di dove mostrare la meta-scatola e a per ciascuno
loop che loop attraverso la matrice e aggiungere la meta-box allo schermo dato usando il add_meta_box
funzione.
E infine, la funzione è agganciata al add_meta_boxes
azione.
function tes_mb_create () / ** * @array $ screens Scrive lo schermo su cui mostrare la meta box * @values post, pagina, dashboard, link, allegato, custom_post_type * / $ screens = array ('post', 'page' ); foreach ($ schermi come $ screen) add_meta_box ('tes-meta', 'Elenco motore di ricerca', 'tes_mb_function', $ screen, 'normal', 'high'); add_action ('add_meta_boxes', 'tes_mb_create');
In alternativa, puoi aggiungere un doppio add_meta_box
funzione per includere la meta-box sia nella schermata di posta che in quella di pagina in questo modo:
funzione tes_mb_create () add_meta_box ('tes-meta', 'Elenco motore di ricerca', 'tes_mb_function', 'post', 'normal', 'high'); add_meta_box ('tes-meta', 'Elenco motore di ricerca', 'tes_mb_function', 'page', 'normal', 'high'); add_action ('add_meta_boxes', 'tes_mb_create');
Dal codice sopra riportato, la funzione di callback per stampare l'HTML per la sezione di schermo di modifica viene indicata come tes_mb_function
che è il terzo argomento passato add_meta_box
funzione.
Nel nostro plug-in, stiamo solo codificando due campi modulo HTML per gestire i dati Titolo e Descrizione.
funzione tes_mb_function ($ post) / / recupera i valori dei metadati se esistono $ tes_meta_title = get_post_meta ($ post-> ID, '_tes_meta_title', true); $ tes_meta_description = get_post_meta ($ post-> ID, '_tes_meta_description', vero); // Aggiungi un campo nonce in modo che possiamo verificarlo in seguito durante la convalida di wp_nonce_field ('tes_inner_custom_box', 'tes_inner_custom_box_nonce'); eco '';
Tag del titolo: Meta Description:
La spiegazione del tes_mb_function
il codice sopra è il seguente:
A questo punto, dovresti vedere la meta-box nella schermata del post e della pagina.
Una meta box non è completa fino a quando non può salvarla nel database. Il nome della funzione per gestire il salvataggio dei dati sarà tes_mb_save_data
. Il suo codice è il seguente.
funzione tes_mb_save_data ($ post_id) / * * Abbiamo bisogno di verificare che questo provenga dal nostro schermo e con autorizzazione appropriata, * perché save_post può essere attivato in altri momenti. * / // Controlla se il nostro nonce è impostato. if (! isset ($ _POST ['tes_inner_custom_box_nonce'])) restituisce $ post_id; $ nonce = $ _POST ['tes_inner_custom_box_nonce']; // Verifica che il nonce sia valido. if (! wp_verify_nonce ($ nonce, 'tes_inner_custom_box')) restituisce $ post_id; // Se si tratta di un salvataggio automatico, il nostro modulo non è stato inviato, quindi non vogliamo fare nulla. if (definito ('DOING_AUTOSAVE') && DOING_AUTOSAVE) restituisce $ post_id; // Controlla le autorizzazioni dell'utente. if ('page' == $ _POST ['post_type']) if (! current_user_can ('edit_page', $ post_id)) restituisce $ post_id; else if (! current_user_can ('edit_post', $ post_id)) restituisce $ post_id; / * OK, è sicuro per noi salvare i dati ora. * / // Se esistono voci vecchie, recuperale $ old_title = get_post_meta ($ post_id, '_tes_meta_title', true); $ old_description = get_post_meta ($ post_id, '_tes_meta_description', true); // Disinstalla l'input dell'utente. $ title = sanitize_text_field ($ _POST ['tes_meta_title']); $ description = sanitize_text_field ($ _POST ['tes_meta_description']); // Aggiorna il meta campo nel database. update_post_meta ($ post_id, '_tes_meta_title', $ title, $ old_title); update_post_meta ($ post_id, '_tes_meta_description', $ description, $ old_description); add_action ('save_post', 'tes_mb_save_data');
Esaminiamo il codice precedente:
save_post
può essere attivato in altri momenti e anche verificare che il nonce precedentemente impostato in tes_mb_function
è valido.$ OLD_TITLE
e $ old_description
variabile. Lo stiamo facendo perché il update_post_meta
la funzione che salva i dati nel database richiede facoltativamente un vecchio valore da verificare prima di aggiornare la riga del database del meta box con i nuovi valori.sanitize_text_field
funzione che converte l'HTML nella sua entità, elimina tutti i tag, rimuove le interruzioni di linea, le schede e lo spazio bianco extra, elimina gli ottetti.update_post_meta
.tes_mb_save_data
è agganciato al save_post
azione per salvare i dati del meta-box quando il post o la pagina viene aggiornato.Non dimenticare, i dati salvati devono essere utilizzati per aggiungere un titolo e una descrizione di Open Graph e il tag meta description nella capo
elemento di ogni pagina.
Per fare ciò, creeremo una funzione chiamata tes_mb_display
che conterrà i tag desiderati e in seguito, agganciarli wp_head
azione.
funzione tes_mb_display () global $ post; // recupera i valori dei metadati se esistono $ tes_meta_title = get_post_meta ($ post-> ID, '_tes_meta_title', true); $ tes_meta_description = get_post_meta ($ post-> ID, '_tes_meta_description', vero); eco ' '; add_action ('wp_head', 'tes_mb_display');
$ postale
oggetto globale.$ tes_meta_title
e $ tes_meta_description
variabili, rispettivamente. capo
elemento.wp_head
.Se hai aggiunto e salvato un titolo e una descrizione su un post o una pagina, la visualizzazione di quell'origine della pagina dovrebbe rivelare la presenza del tag Open Graph e del tag description insieme alla meta description utilizzata dai motori di ricerca.
In questo articolo abbiamo creato un plugin SEO di base che aggiunge una descrizione meta e tag Open Graph utilizzati dai social network dei motori di ricerca alla sezione di intestazione di WordPress.
Abbiamo imparato come creare i meta box, forma i campi, sanifica i dati prima di salvarli nel database e recuperare i dati salvati per l'uso.
Un ulteriore compito per saperne di più su questo processo: Estendi questo plugin e aggiungi un campo meta keyword al modulo metabox e includilo tra i tag che vengono inseriti nell'intestazione di WordPress.