Хук 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 шт):

Автор решения: KAGG Design

WordPress сам выполняет apply_filters( 'script_loader_tag', $tag, $handle, $src ). Вам совершенно не надо этого делать.

Во-вторых, у этого фильтра 3 параметра, а не 4.

add_filter( 'script_loader_tag', 'change_my_script', 10, 3 );

Так вы ничего не сломаете.

→ Ссылка