Почему style.css не подключается?

13 апр. 2011 г., 17:33:08
Просмотры: 33.1K
Голосов: 11

У меня простая тема и я обнаружил, что файл style.css не загружается в <head>. Я уже искал решение, но не могу понять, почему он не загружается.

Я проверил объект global $wp_styles, но ничего не нашел:

function style_test() 
{ 
    $wp_styles = new WP_Styles();

    echo '<pre>'; 
        // $wp_styles->enqueue == полностью пустой
        print_r( $wp_styles->registered ); 
    echo '</pre>'; 
} 
add_action( 'wp_print_scripts', 'style_test', 0 );

Внутри объекта я также не могу найти мои зарегистрированные/поставленные в очередь таблицы стилей (хотя они загружаются), поэтому я думаю, что делаю что-то неправильно при проверке. Есть идеи?

Примечание:
Если я подключаю его вручную, мой файл style.css загружается. Просто автоматическая загрузка не работает. Кроме того, я могу получить доступ к файлу с помощью get_theme_data( TEMPLATEPATH.'/style.css' ); без проблем.

0
Все ответы на вопрос 4
1
17

Таблицы стилей темы обычно не подключаются через очередь, их загружают с помощью..

<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />

Поэтому естественно вы не увидите их в массиве стилей..

Конечно, вы можете (если предпочитаете) использовать подключение через очередь вместо этого.

13 апр. 2011 г. 17:40:35
Комментарии

Основная таблица стилей style.css — как и любая другая таблица стилей — должна быть либо жестко встроена в заголовок документа, либо вручную подключена через хуки wp_head или wp_print_styles. WordPress не подключает style.css автоматически.

Chip Bennett Chip Bennett
13 апр. 2011 г. 17:50:11
2

Рекомендуемый способ - подключение style.css через functions.php вашей темы.

Добавьте этот код в functions.php:

 /**
 * Правильная загрузка CSS и JS
 */
function myprefix_load_css_and_js() {
    wp_enqueue_style( 'style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'myprefix_load_css_and_js' );

Вы можете обратиться к руководству по темам WordPress и посмотреть примеры здесь.

26 авг. 2017 г. 11:57:38
Комментарии

Проголосовал за, но небольшое уточнение: вероятно, лучше определить функцию анонимно внутри вызова add_action, а не добавлять её в глобальное пространство имён, так как она нигде больше не вызывается.

tklodd tklodd
16 мая 2022 г. 22:00:13

Привет @kloddant, спасибо за предложение. Хотя я согласен, что наличие в глобальном пространстве имён может создавать проблемы, я предпочитаю давать имя. Это даёт возможность программно отключить функцию в будущем, если потребуется. Обычно я решаю эту проблему, добавляя к функции уникальный и длинный префикс.

Arun Basil Lal Arun Basil Lal
17 мая 2022 г. 10:40:17
1

хотя это уже решено, я думаю, это также поможет кому-то.

Вы можете загрузить style.css, добавив эту строку кода на любую отдельную страницу или пользовательский шаблон.

wp_enqueue_style('style', get_stylesheet_uri() );
14 июн. 2020 г. 18:23:05
Комментарии

Это дублирует ответ от @Arun Basil Lal, приведённый выше.

kaiser kaiser
14 июн. 2020 г. 23:12:45
0

Небольшое замечание к ответу Arun выше. Как они сказали, вам следует подключить стили в файле functions.php, но, вероятно, лучше определить и вызвать их анонимно внутри функции add_action, так как вы нигде больше их не вызываете. Таким образом, вы избежите добавления в глобальное пространство имен.

add_action('wp_enqueue_scripts', function () {
    wp_enqueue_style('style', get_stylesheet_uri());
});
16 мая 2022 г. 22:04:49