WordPress Admin - скрипты загружаются, но не выполняются? - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь загрузить и выполнить серию файлов сценариев в 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,
    });
}

1 Ответ

0 голосов
/ 21 декабря 2018

Если вы точно нацеливаетесь на все, тогда

var slider = ('.custom-block.slideshow .flickity');

, вероятно, ваша проблема.попробуйте это:

var $slider = $('.custom-block.slideshow .flickity');

// Init
$slider.flickity({
...