Hvor mulig er det bedre å bruke skjermspesifikke kroker i stedet for mer generisk i det
, admin_init
, admin_footer
etc. (med mindre du spesifikt vil at tilbakeringingen skal kjøre på hver skjerm). I dette raske tipset ser vi på hvordan du enkelt kan få skjermhakene til en bestemt side.
Sidespesifikke kroker gir den mest effektive (og reneste) måten å målrette en tilbakeringing for bare skjermbildene du trenger den til. De inkluderer:
last side-krok
- kalt før skjermbelastningen (logikken for dette finner du her)admin_print_styles- side-krok
- handling for utskriftstiler i
på admin sidenadmin_print_scripts- side-krok
- handling for utskrift av skript i
på admin sidenadmin_head- side-krok
- handling utløst inne i
på admin sidenadmin_footer- side-krok
- handling utløst like over avslutningen
tag på admin sidenMen hva er verdien av Side-krok
for en bestemt side? Ser på laste-*
krok spesielt du vil finne at det er en ganske innviklet logikk ved å bestemme Side-krok
. Spesielt behandler den tilpassede plugin-sider forskjellig fra "kjerne" -sidene (for eksempel posttype og taksonomi-sider), og for bakoverkompatibilitetens skyld vil det bruke flere kroker for samme skjerm når du redigerer innlegg, sider eller kategorier.
De generelle regler for verdien av Side-krok
kan oppsummeres som følger:
add_menu_page ()
(og tilhørende funksjoner) er det skjerm-ID (verdien returnert av add_menu_page ()
)edit.php
post-new.php
post.php
redigerings tags.php
Men siden kroken er generert, er den til slutt lagret i det globale $ hook_suffix
.
Generelt er disse reglene nok til å bestemme sidespesifikke kroker. Men når jeg jobber med dem, finner jeg ofte det hjelper å få en enkel referanse. For å lage denne enkle referansen legger vi til et panel på "hjelp" -fanen øverst til høyre på hver skjerm som vil vise skjermens detaljer (skjerm-ID, skjermbase og mest hensiktsmessig, skjermens krok suffiks). Det vil også vise skjermens spesifikke kroker.
Paneler i hjelpefanen ble introdusert i 3.3, så dette vil bare fungere for WordPress versjon 3.3+. For å legge til panelet bruker vi contextual_help
filter. Dette er et filter for bakoverkompatibilitetsformål, så vi filtrerer ikke noe. I stedet bruker vi WP_Screen :: add_help_tab
metode.
/ * Legg til kontekstuell hjelp * / add_filter ('contextual_help', 'wptuts_screen_help', 10, 3); funksjon wptuts_screen_help ($ contextual_help, $ screen_id, $ skjerm) // Funksjonen add_help_tab for skjerm ble introdusert i WordPress 3.3. hvis (! method_exists ($ skjerm, 'add_help_tab')) returnere $ contextual_help; / * ... generer hjelpeinnhold ... * / $ help_content = "; $ screen-> add_help_tab (array ('id' => 'wptuts-skjermhjelp', 'title' => 'Skjerminformasjon', 'content' => $ help_content,)), returner $ contextual_help;
For å generere hjelpinnholdet tar vi global $ hook_suffix
og legg det til krokstamlene nevnt ovenfor. Vi får også en liste over skjermens detaljer, som er lagret som egenskapene til WP_Screen
gjenstand.
global $ hook_suffix; // Liste-skjermegenskaper $ variables = '
Som vil gi oss noe som følger:
Du kan plassere følgende i nettstedets verktøytillegg, eller (hvis du må), temaet ditt functions.php. Pass på at du endrer navn wptuts_screen_help
til noe unikt for deg.
add_action ('contextual_help', 'wptuts_screen_help', 10, 3); funksjon wptuts_screen_help ($ contextual_help, $ screen_id, $ skjerm) // Funksjonen add_help_tab for skjerm ble introdusert i WordPress 3.3. hvis (! method_exists ($ skjerm, 'add_help_tab')) returnere $ contextual_help; global $ hook_suffix; // Liste-skjermegenskaper $ variables = '