Damaks
@Damaks

Wordpress и jQuery.noConflict?

Делал необходимый функционал для сайта. С помощью api Яндекс Карты по адресу определяю координаты, если адрес отображается неправильно, смещением маркера получаю верные координаты. Для простоты сделал всё в простом html файле. И когда перенёс на Wordpress меня ждал неприятный сюрприз. Для чистоты эксперимента к тестовому html файлу подключил jquery из папки wordpress, не заработало, хотя оригинальный той же версии работал. Оказалось, что в вордпрессовском в конце файла приписано "jQuery.noConflict();", именно из-за этого все труды на смарку. Особых знаний в javascript не имею, функционал создавал скрещиванием 2-3 примеров, смекалки и метода тыка.

Люди добрые, как можно решить проблему? Каким образом нужно изменить исходный скрипта? Есть ли какие рекомендации для большинства подобных случаев? Не хотелось бы подключать ещё одну версию jquery лишь для одного плагина.

P.S. также может кто подскажет, как можно подключить скрипты в админке только на определённой странице, точнее на странице редактирования поста (пользовательского)?
  • Вопрос задан
  • 1975 просмотров
Решения вопроса 1
Используйте jQuery вместо $.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Сколько раз уже этот вопрос обсуждался - даже гугл устал считать. Вот вам шпаргалка в стиле "один раз сделал и забыл навсегда", для повторного использования в будущем:

(function($){ // <----- Начало обертки

    /**
     * Immediate execution
     */
    console.log();
    
    /**
     * When DOM is ready
     */
    $(document).ready(function(){
    
    });
    
    /**
     * When all content is loaded
     */
    $(window).load(function(){

    }); // window.load END

})(jQuery); // <----- Конец обертки

Все что внутри обертки можете спокойно писать с $, как обычно.
Ответ написан
Комментировать
Вероятнее всего вы взяли за основу готовый шаблон! и судя по всему со своим фреймворком. Если бы вы писали шаблон с нуля - проблема данного характера отсутствовала. Пройдите по коду файла function.php либо там вставка текущей (jQuery.noConflict();) инъекции, либо в подключаемых файлах из function.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы