Как загрузить 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' );

Но что, если я хочу принудительно применить стили в футере? Разве нет способа это сделать?

print_late_styles()
можно использовать для этого, хотя и не рекомендуется, так как эта функция »Выводит стили, которые были добавлены в очередь слишком поздно для HTML-заголовка.«. @GiulioBambini

@Emetrop не могли бы вы показать пример кода с использованием функции print_late_style?

На самом деле, это миф, что стили обязательно должны быть в head. Стили, критически важные для первоначальной отрисовки страницы, действительно должны находиться в head. Остальные, менее важные стили можно загружать внизу страницы для оптимизации скорости загрузки.
