Nella parte 2 di questo tutorial, ti ho mostrato come aggiungere metabox personalizzati al dashboard di WordPress, che puoi usare per fornire un testo di aiuto per i tuoi clienti o utenti.
Ma cosa succede se si desidera fornire un testo di aiuto su singole schermate di modifica? In questo tutorial, ti mostrerò come fare proprio questo.
In questo tutorial imparerai come:
Creerò un plugin per farlo - se hai già creato un plugin dopo aver seguito le parti da 1 a 3 di questa serie potresti preferire aggiungere il codice da questo tutorial a quel plugin, dandoti un plugin con tutti le personalizzazioni dell'amministratore.
Per completare questo tutorial avrai bisogno di:
All'inizio del mio plugin, sto aggiungendo le seguenti linee:
/ * Nome plugin: Wptuts + Personalizza la parte Admin 4 - URI del plug-in del testo della guida: http://rachelmccollin.co.uk Descrizione: Questo plugin supporta il tutorial in Wptuts +. Aggiunge un testo di aiuto alla schermata di modifica di WordPress. Versione: 1.0 Autore: Rachel McCollin Autore URI: http://rachelmccollin.com Licenza: GPLv2 * /
Per aggiungere un metabox contenente il testo della guida, si usa il add_meta_box ()
funzione, che useresti anche se stavi creando un metabox per i metadati dei post o in una schermata delle impostazioni. Questa funzione richiede alcuni parametri:
I parametri sono:
$ id
- l'ID univoco per il metabox.$ titolo
- il titolo che verrà mostrato agli utenti.$ callback
- la funzione di callback che definisce il contenuto del metabox.$ post_type
- il tipo di post in cui verrà visualizzata la schermata di metabox. Lascia questo campo per aggiungere i metabox a tutte le schermate di modifica del tipo di post o specifica quale tipo di post desideri scegliere come target.$ contesto
- dove nella schermata di modifica vuoi che appaia la metabox: "normale", "avanzato" o "laterale". L'impostazione predefinita è 'avanzata' che colloca il metabox nell'area principale dello schermo.$ priorità
- nel contesto che hai definito, la priorità per questo metabox ('Alto'
, 'nucleo'
, 'predefinito'
o 'Basso'
). Questo è utile se stai aggiungendo più metabox.$ callback_args
- argomenti da passare alla funzione di callback (opzionale)Quindi, per aggiungere un metabox all'area principale della schermata di post editing solo per i post, aggiungo quanto segue al mio plugin:
// Aggiungi metabox sotto la funzione del riquadro di modifica wptutsplus_metabox_after_title () add_meta_box ('after-title-help', 'Using this Screen', 'wptutsplus_after_title_help_metabox_content', 'post', 'advanced', 'high'); add_action ('add_meta_boxes', 'wptutsplus_metabox_after_title');
Questo aggiunge un metabox vuoto, che non funzionerà ancora perché non ho aggiunto la funzione di callback. Questo è il seguente:
// funzione di callback per popolare la funzione metabox wptutsplus_after_title_help_metabox_content () ?>Usa questa schermata per aggiungere nuovi articoli o modificare quelli esistenti. Assicurati di fare clic su "Pubblica" per pubblicare un nuovo articolo dopo averlo aggiunto o su "Aggiorna" per salvare eventuali modifiche.
Questo ora aggiunge un metabox alla mia schermata di post-editing, come mostrato nello screenshot:
Come puoi vedere, ho rimosso alcuni degli altri metabox normalmente visibili nella schermata di post editing (come estratti e discussioni), ma il mio nuovo metabox è sotto il riquadro di modifica e quindi non molto visibile. È impossibile usare il
add_meta_box ()
funzione per aggiungere un metabox sopra il riquadro di modifica principale senza ricorrere a una soluzione jQuery che sposta il riquadro di modifica principale verso il basso e che penso sia eccessivo per questo problema. Quindi quali alternative ho??
- In primo luogo, posso aggiungere un metabox sopra il metabox "Pubblica", che sarà più ovvio per gli utenti.
- In alternativa, posso imbrogliare e usare il
edit_form_after_title
gancio di azione per aggiungere un falso metabox sopra il riquadro di modifica.Inizierò con la prima opzione: aggiungere un metabox a destra sopra il metabox "Pubblica".
2. Aggiunta di un metabox sul lato destro della schermata di modifica
Per aggiungere un metabox in alto a destra dello schermo, uso il
add_meta_box ()
funziona allo stesso modo di prima, con alcuni dei parametri modificati. Userò anche una funzione di callback diversa per popolare il metabox con contenuti diversi.Nel tuo plugin, aggiungi quanto segue:
// Aggiungi il testo della guida a destra dello schermo in una funzione di metabox wptutsplus_metabox_top_right () add_meta_box ('after-title-help', 'Pubblicazione e salvataggio delle modifiche', 'wptutsplus_top_right_help_metabox_content', 'post', 'side', 'high') ; // Funzione di callback per popolare la funzione di metabox wptutsplus_top_right_help_metabox_content () ?>Assicurati di fare clic su "Pubblica" di seguito per pubblicare un nuovo articolo dopo averlo aggiunto o su "Aggiorna" per salvare eventuali modifiche.
Questo aggiunge un piccolo metabolismo con brevi istruzioni: se aggiungessi molto più testo, sposterebbe i metaboli sotto di esso troppo in basso sullo schermo. Puoi vedere il risultato nello screenshot:
Nota: ho commentato la funzione per il metabox nell'area principale dello schermo prima di aggiungere questo nuovo metabox, motivo per cui non è possibile vederlo nello screenshot.
3. Aggiunta di un Metabox "falso" sopra il riquadro di modifica
Quindi aggiungere una piccola metabox in alto a destra dello schermo è abbastanza semplice, ma cosa succede se voglio un metabox in alto a sinistra, sopra il riquadro di modifica?
Per fare questo, non usi il
add_meta_box ()
funzione, ma usa iledit_form_after_title
hook, che inserisce il contenuto dopo il titolo del post e prima del riquadro di modifica. Collegherò una funzione a quel gancio per definire il markup che verrà aggiunto allo schermo, e userò le classi nel mio markup per replicare l'aspetto di un metabox.Nel tuo plugin, aggiungi quanto segue:
function wptutsplus_text_after_title ($ post_type) ?>Usando questa schermata
Usa questa schermata per aggiungere nuovi articoli o modificare quelli esistenti. Assicurati di fare clic su "Pubblica" per pubblicare un nuovo articolo dopo averlo aggiunto o su "Aggiorna" per salvare eventuali modifiche.
Questo aggiunge un po 'di markup alla schermata di modifica che assomiglia molto ad un metabox, perché ho incluso il
.casella postale
e.dentro
classi:Tuttavia, c'è un problema con questo markup: verrà visualizzato nella schermata di modifica per ogni tipo di post. Dato che non sto usando il
add_meta_box ()
funzione, non ho il lusso del$ post_type
parametro. Quindi, invece di usarlo, eseguirò un controllo per la pagina di modifica in cui ci troviamo prima di emettere il markup.Dato che sono nel backend di WordPress, non posso usare i tag condizionali standard che userei in un file modello per controllare la mia posizione, ma posso usare il
get_current_screen ()
funzione per identificare quale schermata di modifica sono attiva.Il
get_current_screen ()
la funzione restituisce un array, che includerà il tipo di post dello schermo corrente, tra le altre cose. Posso usare questo per verificare se il tipo di post che si sta modificando è'inviare'
.All'interno della tua funzione, sopra gli altri contenuti, aggiungi quanto segue:
$ screen = get_current_screen (); $ edit_post_type = $ screen-> post_type; se ($ edit_post_type! = 'post') restituisce; ?>L'intera funzione apparirà ora come questa:
// Aggiungi il metabox falso sopra la funzione del riquadro di modifica wptutsplus_text_after_title ($ post_type) $ screen = get_current_screen (); $ edit_post_type = $ screen-> post_type; se ($ edit_post_type! = 'post') restituisce; ?>Usando questa schermata
Usa questa schermata per aggiungere nuovi articoli o modificare quelli esistenti. Assicurati di fare clic su "Pubblica" per pubblicare un nuovo articolo dopo averlo aggiunto o su "Aggiorna" per salvare eventuali modifiche.
Ciò garantirà che il metabox "falso" venga visualizzato solo nella schermata Modifica post, e non nella schermata di modifica per altri tipi di post. Potresti quindi ripetere questa funzione per diversi tipi di post (come
'pagina'
e'Allegato'
, così come i tuoi tipi di post personalizzati), per visualizzare un testo di aiuto diverso per quelli.
Sommario
L'aggiunta di testo di aiuto alle singole schermate di modifica può essere molto utile per gli utenti che non desiderano tornare al dashboard per ottenere aiuto.
In questo tutorial, hai imparato come aggiungere i metabox per il testo di aiuto nelle schermate di modifica e come usare il
edit_form_after_title
agganciare per aggiungere il testo della guida immediatamente sopra il riquadro di modifica.