我正在尝试在 wp-admin 中加载和执行一系列脚本文件,更具体地说是在帖子编辑屏幕上。目前,我能够成功加载文件,但实际上没有任何工作/执行。也没有控制台错误。
我在functions.php中按如下方式加载脚本:
// Admin scripts
function my_admin_scripts($hook){
// Only load on edit screens
if( $hook != 'edit.php' && $hook != 'post.php' && $hook != 'post-new.php' )
return;
wp_register_script('flickity', get_template_directory_uri() .'/js/vendor/min/flickity.pkgd-min.js', false, '2.1.0', false);
wp_register_script('single', get_template_directory_uri() .'/js/min/single-min.js', false, '1.0', false);
wp_enqueue_script('flickity');
wp_enqueue_script('single');
}
add_action('admin_enqueue_scripts','my_admin_scripts');
在控制台中,我可以看到两个脚本都已加载,因为这两个文件都包含一个 console.log() 函数:
loaded-flickity
loaded-single
但是,这些脚本的实际功能不起作用,并且如前所述,没有控制台错误可以帮助指出正确的方向。我以前从未遇到过这种问题,为什么脚本加载后不会执行?
这是来自 single-min.js 的片段,供参考:
console.log('loaded-single');
// Init flickity
$(document).ready(function(){
// Only execute if slideshow block exists
if($('.custom-block.slideshow').length > 0 ){
var slider = ('.custom-block.slideshow .flickity');
// Init
$(slider).flickity({
// Options
cellSelector: '.carousel-cell',
cellAlign: 'left',
imagesLoaded: true,
adaptiveHeight: true,
prevNextButtons: true,
arrowShape: 'M0,49.8l33.1-33.2h27L36.8,39.8h63.3v19.7H36.7l23.5,23.4H33.2L0,49.8z',
pageDots: false,
fullscreen: true,
});
}