Почему style.css не подключается?
У меня простая тема и я обнаружил, что файл 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' );
без проблем.

Таблицы стилей темы обычно не подключаются через очередь, их загружают с помощью..
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
Поэтому естественно вы не увидите их в массиве стилей..
Конечно, вы можете (если предпочитаете) использовать подключение через очередь вместо этого.

Рекомендуемый способ - подключение 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 и посмотреть примеры здесь.

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

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

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

Небольшое замечание к ответу Arun выше. Как они сказали, вам следует подключить стили в файле functions.php, но, вероятно, лучше определить и вызвать их анонимно внутри функции add_action, так как вы нигде больше их не вызываете. Таким образом, вы избежите добавления в глобальное пространство имен.
add_action('wp_enqueue_scripts', function () {
wp_enqueue_style('style', get_stylesheet_uri());
});
