Я провел поиск и нашел этот метод здесь с использованием wp_add_inline_script
. И это работает.
Но что, если бы я хотел сохранить свой сценарий инициализации в другом. js файле? Это то, чего я хотел сначала. Как я могу правильно загрузить? Я пробовал это, но загрузка моего init-fancybox
должна быть слишком ранней, потому что я получаю сообщение об ошибке.
(мой init-fancybox
скрипт не является проблемой, потому что он работает, когда он загружен правильно, используя wp_add_inline_script
)
function fancybox_enqueues() {
wp_register_script( 'fancybox', get_theme_file_uri( '/assets/js/jquery.fancybox.min.js' ), array('jquery'), '3.5.7', true);
wp_register_script( 'init-fancybox', get_theme_file_uri( '/assets/js/init-fancybox.js' ), array('jquery','fancybox'), '1.0', true);
wp_register_style( 'fancybox-css', get_theme_file_uri( '/css/jquery.fancybox.min.css' ), '1.0');
if ( is_singular( 'item' ) ) {
wp_enqueue_script( 'jquery');
wp_enqueue_script( 'fancybox' );
wp_enqueue_script ('init-fancybox');
wp_enqueue_style( 'fancybox-css' );
}
}
add_action( 'wp_enqueue_scripts', 'fancybox_enqueues');
Вот ошибка, которую я получаю TypeError: $ is not a function
А вот init-fancybox. js
$('[data-fancybox="single-item__gallery"]').fancybox({
buttons : [
"zoom",
"share",
//"slideShow",
"fullScreen",
//"download",
"thumbs",
"close"
],
thumbs : {
autoStart : false
}
});