Wo immer möglich, ist es besser, screenspezifische Hooks als generische zu verwenden drin
, admin_init
, admin_footer
usw. (es sei denn, Sie möchten ausdrücklich, dass Ihr Rückruf auf jedem Bildschirm ausgeführt wird). In diesem kurzen Tipp erfahren Sie, wie Sie auf einfache Weise die Bildschirmhaken für eine bestimmte Seite erhalten.
Seitenspezifische Hooks bieten die effizienteste (und sauberste) Möglichkeit, einen Rückruf nur für die Bildschirme zu richten, für die Sie ihn benötigen. Sie beinhalten:
Lade- Seitenhaken
- vor dem Laden des Bildschirms aufgerufen (die Logik dafür finden Sie hier)admin_print_styles- Seitenhaken
- Aktion zum Drucken von Stilen in der
der Admin-Seiteadmin_print_scripts- Seitenhaken
- Aktion zum Drucken von Skripten im
der Admin-Seiteadmin_head- page-hook
- Aktion ausgelöst im
der Admin-Seiteadmin_footer- Seitenhaken
- Aktion unmittelbar über dem Abschluss ausgelöst
Tag auf der Admin-SeiteAber was ist der Wert von Seitenhaken
für eine bestimmte Seite? Mit Blick auf die Belastung-*
Im besonderen werden Sie feststellen, dass es eine ziemlich komplizierte Logik bei der Bestimmung der Seitenhaken
. Insbesondere werden benutzerdefinierte Plug-In-Seiten anders behandelt als 'Kernseiten' (z. B. Posttyp- und Taxonomieseiten). Um Abwärtskompatibilität zu gewährleisten, werden bei der Bearbeitung von Posts, Seiten oder Kategorien mehrere Hooks für denselben Bildschirm verwendet.
Die allgemeinen Regeln für den Wert von Seitenhaken
kann wie folgt zusammengefasst werden:
add_menu_page ()
(und verwandte Funktionen) ist es das Bildschirm-ID (der Wert wird von zurückgegeben add_menu_page ()
)edit.php
post-new.php
post.php
edit-tags.php
Der Seiten-Hook wird jedoch generiert, er wird jedoch letztlich im globalen Bereich gespeichert $ hook_suffix
.
Im Allgemeinen reichen diese Regeln aus, um die seitenspezifischen Haken zu bestimmen. Aber wenn ich mit ihnen arbeite, finde ich es oft hilfreich, eine einfache Referenz zu haben. Um diese einfache Referenz zu erstellen, fügen Sie der Registerkarte "Hilfe" oben rechts auf jedem Bildschirm ein Feld hinzu, in dem die Details des Bildschirms (Bildschirm-ID, Bildschirmbasis und am besten den Bildschirm) aufgeführt werden Hakensuffix). Es werden auch die spezifischen Haken des Bildschirms aufgelistet.
Die Bildschirme auf der Registerkarte "Hilfe" wurden in 3.3 eingeführt. Dies funktioniert also nur für WordPress-Versionen 3.3 und höher. Um das Panel hinzuzufügen, verwenden wir die contextual_help
Filter. Dies ist ein Filter für die Rückwärtskompatibilität. Wir filtern also nichts. Stattdessen verwenden wir die WP_Screen :: add_help_tab
Methode.
/ * Kontexthilfe hinzufügen * / add_filter ('contextual_help', 'wptuts_screen_help', 10, 3); Funktion wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // Die Funktion add_help_tab für screen wurde in WordPress 3.3 eingeführt. if (! method_exists ($ screen, 'add_help_tab')) gibt $ contextual_help zurück; / *… Hilfeinhalt generieren… * / $ help_content = "; $ screen-> add_help_tab (array ('id' => 'wptuts-screen-help', 'title' => 'Screen Information', 'content' => $ help_content,)); Rückgabe von $ contextual_help;
Um den Hilfeinhalt zu generieren, nehmen wir die globale $ hook_suffix
und hängen Sie es an die oben genannten Hakenstiele an. Wir erhalten auch eine Liste der Bildschirmdetails, die als Eigenschaften des Fensters gespeichert werden WP_Screen
Objekt.
global $ hook_suffix; // Bildschirm-Eigenschaften auflisten $ variables = '
Das gibt uns so etwas wie das Folgende:
Sie können Folgendes in das Hilfsprogramm-Plugin Ihrer Site oder (falls erforderlich) Ihres Themes einfügen Functions.php. Stellen Sie sicher, dass Sie umbenennen wptuts_screen_help
zu etwas, das für Sie einzigartig ist.
add_action ('contextual_help', 'wptuts_screen_help', 10, 3); Funktion wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // Die Funktion add_help_tab für screen wurde in WordPress 3.3 eingeführt. if (! method_exists ($ screen, 'add_help_tab')) gibt $ contextual_help zurück; global $ hook_suffix; // Bildschirm-Eigenschaften auflisten $ variables = '