добавление пользовательских стилей в wp-admin

20 авг. 2013 г., 17:59:24
Просмотры: 117K
Голосов: 41

у меня возникли проблемы с подключением моих пользовательских стилей в области WP-ADMIN. plugins_url('style.css', __FILE__) ); нужно ли мне создавать папку css в моем плагине или просто скопировать мой .css файл в директорию wp-admin/css?

я попробовал оба варианта, но ничего не работает.

и какие значения должны быть заменены на __FILE__?

извините, я довольно новичок в этом.

/*ДОБАВЛЯЕТ ТАБЛИЦУ СТИЛЕЙ В WP-ADMIN*/
add_action( 'admin_enqueue_scripts', 'safely_add_stylesheet_to_admin' );
    function safely_add_stylesheet_to_admin() {
        wp_enqueue_style( 'prefix-style', plugins_url('style.css', __FILE__) );
    }


/*ДОБАВЛЯЕТ МОЮ ПОЛЬЗОВАТЕЛЬСКУЮ ПАНЕЛЬ НАВИГАЦИИ В WP-ADMIN*/
add_action('admin_head', 'custom_nav');
function custom_nav(){
    include('custom_nav.html');

}
0
Все ответы на вопрос 3
3
60

Согласно WordPress Codex (здесь):

admin_enqueue_scripts - это первое действие, подключенное к хукам скриптов админ-панели.

Пример

Подключение CSS или JS файлов для всей области админки:

//из functions.php

//Первый вариант: один файл
//Если используете дочернюю тему, можно заменить на:
// get_stylesheet_directory_uri() вместо get_template_directory_uri()
add_action( 'admin_enqueue_scripts', 'load_admin_style' );
function load_admin_style() {
    wp_register_style( 'admin_css', get_template_directory_uri() . '/admin-style.css', false, '1.0.0' );
    //ИЛИ
    wp_enqueue_style( 'admin_css', get_template_directory_uri() . '/admin-style.css', false, '1.0.0' );
}

//Второй вариант: два или более файлов.
//Если используете дочернюю тему, можно заменить на:
// get_stylesheet_directory_uri() вместо get_template_directory_uri()
add_action( 'admin_enqueue_scripts', 'load_admin_styles' );
function load_admin_styles() {
    wp_enqueue_style( 'admin_css_foo', get_template_directory_uri() . '/admin-style-foo.css', false, '1.0.0' );
    wp_enqueue_style( 'admin_css_bar', get_template_directory_uri() . '/admin-style-bar.css', false, '1.0.0' );
}

Нужно ли создавать папку css в моем плагине или просто скопировать .css файл в директорию wp-admin/css?

Нет, разместите ваш CSS файл вместе с остальными в директории вашей темы, затем укажите путь с помощью:

get_template_directory_uri() . '/ПУТЬ_К_ВАШЕМУ_ФАЙЛУ'

Например, если мой файл называется admin-style.css и я поместил его в папку css, мой путь будет выглядеть так:

get_template_directory_uri() . '/css/admin-style.css'

Надеюсь, это поможет!

20 авг. 2013 г. 18:21:28
Комментарии

можно спросить, если я хочу импортировать еще 3 таблицы стилей, мне просто добавить (х3) эту часть wp_register_style( 'admin_css', get_template_directory_uri() . '/admin-style.css', false, '1.0.0' ); или нужно создать отдельную функцию?

user1933824 user1933824
20 авг. 2013 г. 18:50:14

wp_register_style, сразу за которым следует связанный wp_enqueue_style (как в 'First solution'), абсолютно избыточен и не делает ничего больше/другого, чем просто использование wp_enqueue_style со всеми параметрами, переданными в wp_register_style.

gmazzap gmazzap
2 сент. 2013 г. 07:16:49

Поскольку я использую дочернюю тему, я изменил функцию пути на get_stylesheet_directory_uri()

Cazuma Nii Cavalcanti Cazuma Nii Cavalcanti
19 июн. 2017 г. 18:21:08
1
16

Если вы хотите внести изменения в CSS для административной панели. Вставьте следующий код в файл functions.php вашей дочерней темы

add_action('admin_head', 'my_custom_fonts'); // admin_head - это хук, my_custom_fonts - функция, которую мы добавляем к хуку

function my_custom_fonts() {
  echo '<style>
    #posts-filter table.posts{
        table-layout:auto;   
    }
  </style>';
}
12 февр. 2019 г. 09:45:26
Комментарии

Спасибо за быстрое исправление!

NSukonny NSukonny
10 янв. 2020 г. 07:15:19
3

Для тех, кто хочет добавить CSS файл в админ-панель из своего плагина (или папки плагина):

if (is_admin()) {

Получить путь к файлу, если он находится в папке: (..myPluginFolder/myfolder/css/my.css)

$myCssFileSrc = plugins_url( '/myfolder/css/my.css', __FILE__ );

Получить путь к файлу, если он находится в корневой папке плагина: (..myPluginFolder/my.css)

$myCssFileSrc = plugins_url( 'my.css', __FILE__ );

Подключить (активировать) файл стилей:

wp_enqueue_style( 'my-css', $myCssFileSrc );
} //endif;

Все манипуляции выполняются в основном файле плагина (myplugin.php)

25 окт. 2020 г. 13:02:47
Комментарии

Но разве это не тот же подход, который использовал автор вопроса, и который у него не сработал?

Rup Rup
25 окт. 2020 г. 14:38:42

Подход, использованный в вопросе, неверен. Я представил полностью протестированный лично мной рабочий код для подключения CSS-файла к административной части сайта. Именно так рекомендуется делать в документации по созданию плагинов: https://developer.wordpress.org/plugins/plugin-basics/determining-plugin-and-content-directories/

tagformat.com tagformat.com
25 окт. 2020 г. 18:29:03

Могу подтвердить, что код, предоставленный @tagformat.com, рабочий и соответствует рекомендуемому в WordPress Codex методу, при условии, что он обернут в функцию и вы привязываете эту функцию к нужному действию enqueue. В противном случае CSS (или JS-файлы, если используются скрипты) подключаются слишком рано.

BillieM BillieM
23 янв. 2023 г. 23:58:16