Как загрузить CSS в футере
Я пытался переместить загрузку файла style.css в футер моей WordPress темы. Я уже сделал что-то подобное с 2 js файлами, и это работает нормально - они загружаются в футере:
function my_init() {
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://www.studionews24.com/wp-content/themes/network/js/jquery.min.js', false, '1.3.2', true);
wp_enqueue_script('jquery');
// загружаем JS файл из моей темы: js/theme.js
wp_enqueue_script('my_script', 'http://www.studionews24.com/wp-content/themes/network/js/menu-resp.js', array('jquery'), '1.0', true);
}
}
add_action('init', 'my_init');
Теперь я пытаюсь переместить в футер также style.css и оставить только некоторые правила встроенного CSS в теге <style>. Я пробовал использовать wp_enqueue_style, но это, похоже, не работает для меня должным образом.
Кто-нибудь может помочь найти элегантное решение?
На самом деле все стили должны размещаться в заголовке. В WordPress нет параметра для этого в функции wp_enqueue_style, потому что традиционно все стили добавлялись в head. В последнее время многие сайты перешли на систему, где критически важные стили "above the fold" загружаются в заголовке, а остальные стили загружаются в подвале (футере).
Вот способ, как это можно сделать: вы можете использовать функцию print_late_styles(), которая вызывается в подвале. Вам просто нужно подключить свои стили после того, как заголовок уже был обработан.
Для этого нужно найти хук, который вызывается на каждой странице после хука wp_head. Например, get_footer может быть одним из таких хуков.
function prefix_add_footer_styles() {
wp_enqueue_style( 'your-style-id', get_template_directory_uri() . '/stylesheets/somestyle.css' );
};
add_action( 'get_footer', 'prefix_add_footer_styles' );
Но что, если я хочу принудительно применить стили в футере? Разве нет способа это сделать?
Giulio Bambini
print_late_styles() можно использовать для этого, хотя и не рекомендуется, так как эта функция »Выводит стили, которые были добавлены в очередь слишком поздно для HTML-заголовка.«. @GiulioBambini
Nicolai Grossherr
@Emetrop не могли бы вы показать пример кода с использованием функции print_late_style?
Giulio Bambini
На самом деле, это миф, что стили обязательно должны быть в head. Стили, критически важные для первоначальной отрисовки страницы, действительно должны находиться в head. Остальные, менее важные стили можно загружать внизу страницы для оптимизации скорости загрузки.
NextGenThemes