Принудительное изменение порядка загрузки скриптов WordPress
У меня есть несколько скриптов, которые добавляются в очередь загрузки,
проблема в том, что я хочу принудительно установить порядок загрузки этих скриптов. Один конкретный скрипт загружается из плагина раньше скриптов темы и требует jquery, хотя сам плагин не требует jquery (плохая разработка плагина, но я предпочитаю не трогать сторонний код из соображений совместимости с будущими обновлениями)
есть ли способ изменить порядок загрузки скриптов во время выполнения?
Большое спасибо

Вам нужно просто подключить свои скрипты до того, как это сделает плагин. Вы можете сделать это, установив приоритет 0 для своего хука. Например, сделайте следующее:
add_filter( 'wp_enqueue_scripts', 'wpse8170_enqueue_my_scripts', 0 );
// или если вы подключаете свои скрипты через действие init
// add_action( 'init', 'wpse8170_enqueue_my_scripts', 0 );
function wpse8170_enqueue_my_scripts() {
wp_enqueue_script( 'myscript', 'http://path/to/my/script.js', array( 'jquery' ) );
// остальные мои скрипты подключаются здесь...
}
Установка приоритета для ваших хуков поместит их в начало очереди вызовов, и ваши скрипты будут добавлены первыми.

извините за наивность, но я так понимаю, что wpse8170_enqueue_my_scripts_on_init — это пользовательская функция со стандартным вызовом enqueue_scripts внутри?

Это не всегда работает: http://wordpress.stackexchange.com/questions/91961/hook-wp-enqueue-scripts-priority-has-no-effect

Чтобы добавить скрипт перед другими скриптами, используйте wp_register_script()
вместо wp_enqueue_script()
, а затем вручную добавьте ваш скрипт в начало очереди:
wp_register_script('handle', get_template_directory_uri()."/custom.js");
array_unshift(wp_scripts()->queue, 'handle');
