thumb

Іноді вам може знадобиться створити окремий файл стилів або 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');

Після цього ви побачите текстовий рядок під верхнім адмін-баром. Там буде написано правильне ім’я сторінки вашого плагіна. Ви можете скопіювати це ім’я і потім видалити цю функцію.