@Darknirk

Как перенести стили в футер в новом WordPress 5.8?

Раньше работавший код, перестал работать в новой версии WP.
function footer_enqueue_scripts(){
	remove_action('wp_head','wp_print_scripts');
	remove_action('wp_head','wp_print_head_scripts',9);
	remove_action('wp_head','wp_enqueue_scripts',1);
	add_action('wp_footer','wp_print_scripts',5);
	add_action('wp_footer','wp_enqueue_scripts',5);
	add_action('wp_footer','wp_print_head_scripts',5);
  }
  add_action('after_setup_theme','footer_enqueue_scripts');

Выводит ошибку
: Trying to get property 'queue' of non-object in
site\wp-includes\script-loader.php
on line
2652


Warning
: Invalid argument supplied for foreach() in
site\wp-includes\script-loader.php
on line
2652

Код для переноса всех стилей 'wp_enqueue_scripts' в футер.
Чем заменить его? Или как исправить?
  • Вопрос задан
  • 364 просмотра
Решения вопроса 1
AntonLitvinenko
@AntonLitvinenko
HTML coder
// Move jQuery to the footer
function theme_move_jquery_to_footer() {
	wp_scripts()->add_data( 'jquery', 'group', 1 );
	wp_scripts()->add_data( 'jquery-core', 'group', 1 );
	wp_scripts()->add_data( 'jquery-migrate', 'group', 1 );
}
add_action( 'wp_enqueue_scripts', 'theme_move_jquery_to_footer' );

это перенесет в футер все скрипты, если указать их зависимыми от джейквери.

Альтернативное решение
// Enqueue scripts and styles.
function theme_scripts() {
	wp_deregister_script( 'jquery' );
	wp_register_script( 'jquery', includes_url( '/js/jquery/jquery.min.js' ), false, NULL, true );
	wp_enqueue_script( 'jquery' );
}
add_action( 'wp_enqueue_scripts', 'theme_scripts' );
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Не надо так делать, это антипаттерн и дичайший костыль.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы