Рабочий вариант. Скрипты \ стили всегда должны подключаться через
wp_enqueue_scripts \
wp_enqueue_styles соответственно.
function my_scripts() {
wp_enqueue_script(
'fitness_calc',
plugins_url('fitness_calc/fitness_calc.js'),
array(), null,
false // этот - последний - параметр указывает, в футере выводить или нет
);
}
add_action('wp_enqueue_scripts', 'my_scripts', 100);
Соответственно , моя разметка грузится быстрее , чем нужный JS
А вообще, это нормально, равно как и размещение скриптов в футере. Почему бы не активировать js-логику (табы, как пример) только когда DOM будет готов к этому, а скрипты загрузятся?.. До этого момента показывать пользователю разметку + начальное активное состояние (выделенный таб, например), либо, если это невозможно - прелоадер. Например, добавить класс .loader, и убирать его при загрузке.
Выносить скрипт в шапку в подавляющем большинстве случаев костыль и неправильно.