Хук script_loader_tag WP отключает загрузку других скриптов
Wordpress 5.8. Хочу использовать хук script_loader_tag для изменения атрибутов скрипта загруженного с помощью wp_enqueue_script в футер. Но после добавления строки add_filter("script_loader_tag", "change_my_script", 10, 4) в function.php отключается добавление предыдущих скриптов в футер. Код в function.php
add_filter("script_loader_tag", "change_my_script", 10, 4);
function change_my_script($tag, $handle, $src, $arg1)
{
/* if ("my-script" === $handle) {
// return str_replace( ' src', ' async src', $tag );
return str_replace(" src", " defer src", $tag);
}*/
return $tag;
}
Код на странице:
<?php $tag = apply_filters("script_loader_tag", $tag, "modal-form", $src); ?>
Мне не понятно почему. В документации и гугле что-то ответа не нашел. PS. На закомментированные строки просьба внимания не обращать. Это обработчик.
Ответы (1 шт):
WordPress сам выполняет apply_filters( 'script_loader_tag', $tag, $handle, $src ). Вам совершенно не надо этого делать.
Во-вторых, у этого фильтра 3 параметра, а не 4.
add_filter( 'script_loader_tag', 'change_my_script', 10, 3 );
Так вы ничего не сломаете.