Ошибка select2 в WordPress

Ошибка select2 в WordPress

Konark Wordress, Решение проблем Июнь 21, 2018 Комментариев (0)

Добрый день. Это мой первый пост по теме в блоге и он будет о том, как я решил конфликт двух плагинов. А именно: Event Calendar и LearnPress. Не в обиду авторам LP, но плагин очень плохо интегрируется в темы, автора любят менять структуру, тэги, классы по каким-то своим причинам.

В общем, если Вы разрабатываете тему и планируете добавить в неё LearnPress, 10 раз подумайте, стоит ли.
Итак, все было хорошо, тема готовилась к выпуску, я обновил все плагины до последней версии, так как обязан поддерживать актуальную версию и… понял что у меня пропал виджет. Ну, бывает, пытаюсь добавить и не могу. Открываю консоль, смотрю, а там сюрприз. А именно ошибка в файле select2.min.js в папке Events Calendar.

Uncaught Error: Option ‘ajax’ is not allowed for Select2 whet attached to a <select> element.

Приплыли. Отключаю плагин, и, конечно же, все работает. Включаю и ошибка. Почему-то, чисто интуитивно, зная какую свинью может подложить LearnPress, я попробовал его отключить. И все заработало, я был не особо удивлен.
Как оказалось, дело было в том, что оба плагина используют библиотеку select2, но разные версии. Пробовал отключить в админке одну из библиотек плагина, в итоге наткнулся на еще одну проблему. У EC библиотека устаревшая, у LP неполная. Вывод? Нужно отключать обе в админке и подключать свою, актуальную и полную. Добавил в functions.php такой код:

function my_function_select2_enqueue_scripts() {
if (is_admin() &amp;amp;&amp;amp; get_current_screen()-&amp;gt;base == "widgets") {
wp_dequeue_script( 'tribe-select2');
wp_deregister_script( 'tribe-select2' );
wp_dequeue_script( 'lp-select2');
wp_deregister_script( 'lp-select2' );
wp_dequeue_script( 'rwmb-select2');
wp_deregister_script( 'rwmb-select2' );
wp_enqueue_style('select2', '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.4/css/select2.min.css');
wp_enqueue_script('select2', '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.4/js/select2.full.min.js', ' ', ' ', false);
}
}

add_action('admin_enqueue_scripts', 'my_function_select2_enqueue_scripts');

UPDATE: Так как проблема только на странице виджетов, то лучше запускать данный код только там. Так как возникают другие проблемы. Обновил код.
P.S.: Простите, еще не реализовал возможность добавления кода в текст статьи. Все будет, просто решил написать статью, чтобы «стартануть», так и пока тема актуальная.

Кстати, пользуясь случаем, пишите свои предложения по блогу в комментариях, так как он еще не готов и на 50%. Только основной функционал.

Буду благодарен за подписку!

Просмотров: 2 962
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Имя и e-mail обязательны для заполнения.