Buduję wtyczkę i chcę dodać fragmenty javascript w głowie administratora, ale tylko dla niektórych stron administratora. Nie chodzi mi o strony jak na stronie WordPress, którą sam tworzysz, ale o istniejące strony sekcji administracyjnych, takie jak „Twój profil”, „Użytkownicy” itd. Czy istnieje funkcja wp specjalnie dla tego zadania? Szukałem i mogę znaleźć tylko funkcję boolowską is_admin
i haki akcji, ale nie funkcję boolowską, która tylko sprawdza.
plugin-development
javascript
api
functions
racl101
źródło
źródło
Odpowiedzi:
Można to zrobić za pomocą haka „admin_enqueue_scripts” w celu umieszczenia w kolejce potrzebnych plików. Ten hak otrzyma $ hook_suffix, który odnosi się do bieżącej załadowanej strony:
źródło
W wp-admin znajduje się zmienna globalna o nazwie $ pagenow, która zawiera nazwę bieżącej strony, tj. Edit.php, post.php itp.
Możesz także sprawdzić żądanie $ _GET, aby dodatkowo zawęzić lokalizację, na przykład:
źródło
global $pagenow; if ( ( 'admin.php' === $pagenow ) && ( 'prefix-theme-settings' === $_GET['page'] ) ) { logic.. }
na przykład sprawdza, czy jesteś na stronie ustawień niestandardowych motywówadmin.php?page=prefix-theme-settings
.Najbardziej wszechstronna metoda została
get_current_screen
dodana w WordPress 3.1zwraca
źródło
get_current_screen()
bezpiecznie korzystać ze wszystkich stron administracyjnych.Aby zaoferować alternatywną metodę / podejście do powyższego pytania.
Ta metoda jest ukierunkowana na konkretne strony bardziej bezpośrednio i pozwala uniknąć logiki warunkowej w twoim wywołaniu zwrotnym (ponieważ już to rozróżniłeś w wybranym haku).
źródło
Wydaje mi się dziwne, że nikt nie wspomniał o tym, że funkcja add_menu_page zwraca hak akcji, którego można użyć do wykonania niektórych akcji tylko na tych stronach
Jeśli potrzebujesz haka $ i sam nie dodałeś strony menu, dokument jest tutaj
Na przykład zaczep do strony menu najwyższego poziomu to
Zaczep strony podmenu to
Zgodnie z tą logiką haczyk na stronie profilu użytkownika to
źródło