Waar mogelijk is het beter om schermspecifieke haken te gebruiken in plaats van meer generiek in het
, admin_init
, admin_footer
etc. (tenzij u specifiek wilt dat uw callback op elk scherm wordt uitgevoerd). In deze snelle tip zullen we bekijken hoe u eenvoudig de schermhaken voor een bepaalde pagina kunt verkrijgen.
Paginaspecifieke hooks bieden de meest efficiënte (en schoonste) manier om een callback te targeten voor alleen het scherm (en) waarvoor u het nodig heeft. Ze bevatten:
load page-hook
- aangeroepen voorafgaand aan het laden van het scherm (de logica hiervoor is hier te vinden)admin_print_styles- page-hook
- actie voor afdrukstijlen in de
van de beheerderspaginaadmin_print_scripts- page-hook
- actie voor het afdrukken van scripts in de
van de beheerderspaginaadmin_head- page-hook
- actie geactiveerd binnen de
van de beheerderspaginaadmin_footer- page-hook
- actie geactiveerd net boven de sluiting
tag op de beheerderspaginaMaar wat is de waarde van Page-hook
voor een bepaalde pagina? Kijken naar de laden-*
hook in het bijzonder zul je merken dat er een redelijk ingewikkelde logica is bij het bepalen van de Page-hook
. In het bijzonder worden aangepaste invoegpagina's anders behandeld dan 'kernpagina's' (zoals pagina's van het type post en taxonomie) en omwille van compatibiliteit met eerdere versies, gebruikt deze meerdere haken voor hetzelfde scherm bij het bewerken van berichten, pagina's of categorieën.
De algemene regels voor de waarde van Page-hook
kan als volgt worden samengevat:
add_menu_page ()
(en gerelateerde functies) het is de scherm ID (de waarde geretourneerd door add_menu_page ()
)edit.php
post-new.php
post.php
bewerk-tags.php
De paginahaak wordt echter wel gegenereerd, maar wordt uiteindelijk opgeslagen in het globale $ hook_suffix
.
Over het algemeen volstaan die regels om de paginaspecifieke hooks te bepalen. Maar als ik met ze werk, vind ik het vaak handig om een eenvoudige referentie te hebben. Om deze eenvoudige referentie te maken voegen we een paneel toe aan het tabblad 'help' in de rechterbovenhoek van elk scherm met de details van het scherm (scherm-ID, schermbasis en het meest nuttig, het scherm haak achtervoegsel). Het zal ook de specifieke haken van het scherm weergeven.
Panelen in het help-tabblad zijn in 3.3 geïntroduceerd, dus dit werkt alleen voor WordPress-versies 3.3 en hoger. Om het paneel toe te voegen, gebruiken we de contextual_help
filter. Dit is een filter voor achterwaartse compatibiliteitsdoeleinden, dus we filteren niets. In plaats daarvan gebruiken we de WP_Screen :: add_help_tab
methode.
/ * Voeg contextuele hulp toe * / add_filter ('contextual_help', 'wptuts_screen_help', 10, 3); function wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // De add_help_tab-functie voor scherm werd geïntroduceerd in WordPress 3.3. als (! method_exists ($ screen, 'add_help_tab')) $ contextual_help retourneert; / * ... help-inhoud genereren ... * / $ help_content = "; $ scherm-> add_help_tab (array ('id' => 'wptuts-screen-help', 'title' => 'Scherminformatie', 'inhoud' => $ help_content,)); return $ contextual_help;
Voor het genereren van de Help-inhoud nemen we de wereldwijde $ hook_suffix
en voeg het toe aan de hierboven genoemde haakstelen. We krijgen ook een lijst met de details van het scherm, die worden opgeslagen als eigenschappen van de WP_Screen
voorwerp.
globale $ hook_suffix; // Eigenschappen van lijstschermen $ variables = '
Wat ons ongeveer het volgende zal geven:
U kunt het volgende plaatsen in de invoegtoepassing van uw site, of (als dat moet) uw thema's functions.php. Zorg ervoor dat je de naam verandert wptuts_screen_help
naar iets unieks voor jou.
add_action ('contextual_help', 'wptuts_screen_help', 10, 3); function wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // De add_help_tab-functie voor scherm werd geïntroduceerd in WordPress 3.3. als (! method_exists ($ screen, 'add_help_tab')) $ contextual_help retourneert; globale $ hook_suffix; // Eigenschappen van lijstschermen $ variables = '