thumb

Иногда вам может понадобится создать отдельный файл стилей или JavaScript файл для страницы настройки вашего плагина, вместо вставки его в существующий код этой страницы. Но как загрузить этот скрипт только на страницах настройки плагина или темы (только на некоторых страницах /wp-admin)?

Для загрузки таблицы стилей или JavaScript файла в head раздел (заголовок/header) админ страниц/ы мы можем использовать admin_enqueue_scripts или wp_enqueue_scripts хук действия.

В зависимости от цели мы можем загружать скрипты на всех страницах веб-сайта, на всех страницах панели администратора или на конкретной странице панели администратора.

Шаг 1. Загрузить скрипты везде на вашем веб сайте:

function enqueue_my_scripts() {

    // ENQUEUE SCRIPTS…

}
add_action( 'wp_enqueue_scripts', 'enqueue_my_scripts' );

Шаг 2. Загрузить скрипты на всех страницах панели администратора:

function enqueue_my_scripts() {

    // ENQUEUE SCRIPTS…

}
add_action( 'admin_enqueue_scripts', 'enqueue_my_scripts' );

Шаг 3. Загрузить скрипты на определённой странице меню верхнего уровня в панели администратора (в примере edit.php - “Записи”):

function enqueue_my_scripts($hook) {
    if ( 'edit.php' != $hook ) {
        return;
    }

    // ENQUEUE SCRIPTS…

}
add_action( 'admin_enqueue_scripts', 'enqueue_my_scripts' );

Шаг 4. Загрузить скрипты на определённой странице из подменю в панели администратора.

Пример:

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 Gareginyan

Arthur Gareginyan

Arthur is a designer and full stack software engineer. He is the founder of the studio SpaceX-Chimp and the blog MyCyberUniverse.com. His personal website can be found at arthurgareginyan.com.

Follow Arthur: