Можете так попробовать сделать (я вставлял код в functions.php темы):
remove_all_actions( 'wp_head' );
// Это также сработает и на хуке wp_footer
add_action( 'wp_head', function () {
wp_enqueue_script( 'my-script', get_template_directory_uri() . '/assets/js/homepage.js' );
} );
Ваш скрипт будет автоматически выведен на хуке wp_footer (с учётом, что в шаблоне используется функция wp_footer() соответственно).
Как это работает?
В движке есть такой код:
add_action( 'wp_head', 'wp_enqueue_scripts', 1 );
То есть на хуке wp_head запускается функция wp_enqueue_scripts() с одноименным хуком внутри. Так как мы удалили все зарегистрированные функции с хука wp_head, то функция wp_enqueue_scripts() вызвана не будет и хук wp_enqueue_scripts не зарегистрируется.
При вызове wp_enqueue_script() напрямую, данные о скрипте будут добавлены на вывод, но так как на wp_enqueue_scripts они вывестись не смогут (хука-то такого уже нет), то автоматом перенесутся на хук wp_footer -> wp_print_footer_scripts() -> хук wp_print_footer_scripts -> _wp_footer_scripts().