Ove possibile, è preferibile utilizzare ganci specifici per lo schermo piuttosto che generici dentro
, admin_init
, admin_footer
ecc. (a meno che non si desideri specificamente eseguire la richiamata su ogni schermo). In questo suggerimento rapido vedremo come è possibile ottenere facilmente i ganci dello schermo per qualsiasi pagina specifica.
I ganci specifici della pagina offrono il modo più efficiente (e più pulito) di scegliere come target un callback solo per gli schermi per i quali è necessario. Loro includono:
del carico page-hook
- chiamato prima del caricamento dello schermo (la logica per questo può essere trovata qui)admin_print_styles- page-hook
- azione per la stampa di stili nel
della pagina di amministrazioneadmin_print_scripts- page-hook
- azione per la stampa di script in
della pagina di amministrazioneadmin_head- page-hook
- azione innescata all'interno del
della pagina di amministrazioneadmin_footer- page-hook
- azione innescata appena sopra la chiusura
tag sulla pagina di amministrazioneMa qual è il valore di Page-hook
per ogni pagina particolare? Guardando il caricare-*
in particolare scoprirai che c'è una logica abbastanza complicata nel determinare il Page-hook
. In particolare, tratta pagine di plug-in personalizzate in modo diverso dalle pagine 'core' (come il tipo di post e le pagine di tassonomia) e, per motivi di compatibilità con le versioni precedenti, userà più hook per lo stesso schermo quando si modificano post, pagine o categorie.
Le regole generali per il valore di Page-hook
può essere riassunto come segue:
add_menu_page ()
(e funzioni correlate) è il ID schermo (il valore restituito da add_menu_page ()
)edit.php
post-new.php
post.php
edit-tags.php
Tuttavia, viene generato l'hook della pagina, che viene infine archiviato nel globale $ hook_suffix
.
In generale queste regole sono sufficienti per determinare i ganci specifici della pagina. Ma quando lavoro con loro trovo spesso che aiuta ad avere un riferimento facile. Per creare questo semplice riferimento, aggiungeremo un pannello alla scheda "help" in alto a destra di ogni schermata che elencherà i dettagli dello schermo (ID della schermata, base dello schermo e, più utilmente, lo schermo suffisso gancio). Elencherà anche i ganci specifici dello schermo.
I pannelli nella scheda della guida sono stati introdotti in 3.3, quindi funzionerà solo con le versioni di WordPress 3.3+. Per aggiungere il pannello usiamo il contextual_help
filtro. Questo è un filtro ai fini della retrocompatibilità, quindi non filtriamo nulla. Invece usiamo il WP_Screen :: add_help_tab
metodo.
/ * Aggiungi l'aiuto contestuale * / add_filter ('contextual_help', 'wptuts_screen_help', 10, 3); function wptuts_screen_help ($ contestual_help, $ screen_id, $ screen) // La funzione add_help_tab per lo schermo è stata introdotta in WordPress 3.3. if (! method_exists ($ screen, 'add_help_tab')) restituisce $ contextual_help; / * ... genera contenuto di aiuto ... * / $ help_content = "; $ screen-> add_help_tab (array ('id' => 'wptuts-screen-help', 'title' => 'Screen Information', 'content' => $ help_content,)); return $ contextual_help;
Per generare il contenuto della guida, prendiamo il globale $ hook_suffix
e appendilo ai gambi dell'amo menzionati sopra. Abbiamo anche una lista dei dettagli della schermata, che sono memorizzati come proprietà di WP_Screen
oggetto.
globale $ hook_suffix; // Proprietà dello schermo elenco $ variabili = '
Quale ci darà qualcosa come il seguente:
È possibile inserire quanto segue nel plug-in di utilità del proprio sito o (se necessario), i temi del proprio tema functions.php. Assicurati di rinominare wptuts_screen_help
a qualcosa di unico per te.
add_action ('contextual_help', 'wptuts_screen_help', 10, 3); function wptuts_screen_help ($ contestual_help, $ screen_id, $ screen) // La funzione add_help_tab per lo schermo è stata introdotta in WordPress 3.3. if (! method_exists ($ screen, 'add_help_tab')) restituisce $ contextual_help; globale $ hook_suffix; // Proprietà dello schermo elenco $ variabili = '