добавление пользовательских стилей в wp-admin
у меня возникли проблемы с подключением моих пользовательских стилей в области 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');
}
Согласно 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'
Надеюсь, это поможет!

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

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

Если вы хотите внести изменения в 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>';
}

Для тех, кто хочет добавить 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)

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

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

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