Där det är möjligt är det bättre att använda skärmspecifika krokar snarare än mer generiska i det
, admin_init
, admin_footer
etc. (om du inte vill att din återuppringning ska köras på varje skärm). I detta snabba tips ser vi på hur du enkelt kan få skärmkrokarna för en viss sida.
Sidspecifika krokar erbjuder det mest effektiva (och renaste) sättet att rikta in en återuppringning för endast den skärm (er) du behöver den för. De inkluderar:
last sida-hook
- kallas före skärmbelastningen (logiken för detta kan hittas här)admin_print_styles- sida-hook
- åtgärd för utskriftsstilar i
på admin sidanadmin_print_scripts- sida-hook
- åtgärd för utskrift av skript i
på admin sidanadmin_head- sida-hook
- åtgärd utlöst inom
på admin sidanadmin_footer- sida-hook
- åtgärd utlöst strax över stängningen
tagg på admin sidanMen vad är värdet av Sida-hook
för en viss sida? Titta på ladda-*
i synnerhet kommer du att finna att det finns en ganska ingripande logik vid bestämning av Sida-hook
. I synnerhet behandlar den anpassade plugin-sidor annorlunda än "core" -sidor (t.ex. posttyp och taxonomisidor) och för bakgrunds kompatibilitet kommer den att använda flera krokar för samma skärm vid redigering av inlägg, sidor eller kategorier.
De allmänna reglerna för värdet av Sida-hook
kan sammanfattas enligt följande:
add_menu_page ()
(och relaterade funktioner) är det skärm-ID (värdet returneras av add_menu_page ()
)edit.php
post-new.php
post.php
edit-tags.php
Sidkroken genereras dock, den är slutligen lagrad i den globala $ hook_suffix
.
Generellt är dessa regler tillräckliga för att bestämma sidspecifika krokar. Men när jag jobbar med dem, tycker jag ofta att det hjälper till att få en enkel referens. För att skapa denna enkla referens lägger vi till en panel på fliken "Hjälp" längst upp till höger på varje skärm som kommer att lista skärmens detaljer (skärm-ID, skärmbas och mest användbar, skärmens krok suffix). Det kommer också att lista skärmens specifika krokar.
Paneler i hjälpfliken introducerades i 3.3, så det här fungerar bara för WordPress-versioner 3.3+. För att lägga till panelen använder vi contextual_help
filtrera. Detta är ett filter för bakåtkompatibilitetsändamål, så vi filtrerar inte någonting. I stället använder vi WP_Screen :: add_help_tab
metod.
/ * Lägg till kontextuell hjälp * / add_filter ('contextual_help', 'wptuts_screen_help', 10, 3); funktion wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // Funktionen add_help_tab för skärm introducerades i WordPress 3.3. om (! method_exists ($ screen, 'add_help_tab')) returnera $ contextual_help; / * ... skapa hjälpinnehåll ... * / $ help_content = "; $ screen-> add_help_tab (array ('id' => 'wptuts-screen-help', 'title' => 'Skärminformation', 'content' => $ help_content,)), returnera $ contextual_help;
För att generera hjälpinnehåll tar vi det globala $ hook_suffix
och lägg den till krogstammarna som nämns ovan. Vi får också en lista över skärmens detaljer, som lagras som egenskaper hos WP_Screen
objekt.
global $ hook_suffix; // Egenskaper för listskärmen $ variables = '
Vilket ger oss något liknande:
Du kan placera följande i din webbplatsens plug-in, eller (om du måste) ditt tema functions.php. Se till att du byter namn på wptuts_screen_help
till något unikt för dig.
add_action ('contextual_help', 'wptuts_screen_help', 10, 3); funktion wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // Funktionen add_help_tab för skärm introducerades i WordPress 3.3. om (! method_exists ($ screen, 'add_help_tab')) returnera $ contextual_help; global $ hook_suffix; // Egenskaper för listskärmen $ variables = '