Завантаження скриптів на адмін сторінках WordPress
Іноді вам може знадобиться створити окремий файл стилів або JavaScript файл для сторінки налаштування вашого плагіна, замість вставки його в існуючий код цієї сторінки. Але як завантажити цей скрипт тільки на сторінках налаштування плагіна або теми (тільки на деяких сторінках /wp-admin
)?
Для завантаження таблиці стилів або JavaScript файлу в head
розділ (заголовок/header) адмін сторінок/и ми можемо використовувати admin_enqueue_scripts
або wp_enqueue_scripts
хук дії.
Залежно від мети ми можемо завантажувати скрипти на всіх сторінках веб-сайту, на всіх сторінках панелі адміністратора або на конкретній сторінці панелі адміністратора.
Завантажити скрипти всюди на вашому веб сайті:
function enqueue_my_scripts() {
// ENQUEUE SCRIPTS…
}
add_action( 'wp_enqueue_scripts', 'enqueue_my_scripts' );
Завантажити скрипти на всіх сторінках панелі адміністратора:
function enqueue_my_scripts() {
// ENQUEUE SCRIPTS…
}
add_action( 'admin_enqueue_scripts', 'enqueue_my_scripts' );
Завантажити скрипти на певній сторінці меню верхнього рівня в панелі адміністратора (в прикладі edit.php
- “Записи”):
function enqueue_my_scripts($hook) {
if ( 'edit.php' != $hook ) {
return;
}
// ENQUEUE SCRIPTS…
}
add_action( 'admin_enqueue_scripts', 'enqueue_my_scripts' );
Завантажити скрипти на певній сторінці з підміню в панелі адміністратора.
Приклад:
function enqueue_my_scripts($hook) {
if ( 'appearance_page_my-page' != $hook ) {
return;
}
// ENQUEUE SCRIPTS…
}
add_action( 'admin_enqueue_scripts', 'enqueue_my_scripts' );
У цьому прикладі використовується сторінка налаштування розташована в підміню розділу «Зовнішній вигляд» і ця сторінка має menu-slug
my-page
.
Для використання цього методу необхідно визначити ім’я сторінки. Простір назв, яке видно на адресу барі не підходить для цього.
Ім’я сторінки в розділі «Зовнішній вигляд» можна визначити за наступною схемою:
themes.php?page={page menu-slug} => appearance_page_{page menu-slug}
appearance_page_
це префікс для сторінок в цьому розділі меню. Вам потрібно додати префікс до menu-slug
. Тобто, якщо адреса потрібної сторінки themes.php?page=my-page.php
, то назва буде appearance_page_my-page
. З іншими розділами панелі адміністратора потрібно зробити те ж саме, але з іншим префіксом. Розділ меню «Параметри» має префікс settings_page_
. Якщо ви не можете знайти правильне ім’я сторінки вашого плагіна то зробіть наступне.
Тимчасово додайте цю функцію в основний файл вашого плагіна:
function enqueue_my_scripts($hook) {
echo "<p style='text-align:center;'>" .$hook. "</p>";
}
add_action('admin_enqueue_scripts', 'enqueue_my_scripts');
Після цього ви побачите текстовий рядок під верхнім адмін-баром. Там буде написано правильне ім’я сторінки вашого плагіна. Ви можете скопіювати це ім’я і потім видалити цю функцію.
Якщо ця стаття допомогла вам, будь ласка, залиште коментар
Дякую за прочитання!
Arthur is a designer and full stack software engineer. He is the founder of Space X-Chimp and the blog My Cyber Universe. His personal website can be found at arthurgareginyan.com.