Делал необходимый функционал для сайта. С помощью api Яндекс Карты по адресу определяю координаты, если адрес отображается неправильно, смещением маркера получаю верные координаты. Для простоты сделал всё в простом html файле. И когда перенёс на Wordpress меня ждал неприятный сюрприз. Для чистоты эксперимента к тестовому html файлу подключил jquery из папки wordpress, не заработало, хотя оригинальный той же версии работал. Оказалось, что в вордпрессовском в конце файла приписано "jQuery.noConflict();", именно из-за этого все труды на смарку. Особых знаний в javascript не имею, функционал создавал скрещиванием 2-3 примеров, смекалки и метода тыка.
Люди добрые, как можно решить проблему? Каким образом нужно изменить исходный скрипта? Есть ли какие рекомендации для большинства подобных случаев? Не хотелось бы подключать ещё одну версию jquery лишь для одного плагина.
P.S. также может кто подскажет, как можно подключить скрипты в админке только на определённой странице, точнее на странице редактирования поста (пользовательского)?
Отчасти помогло. Заменил, карта и маркер отображаются, координаты считает правильно. Только теперь при нажатии на кнопку обновления/публикации поста ничего не происходит, завтра буду разбираться.
Алексей Николаев: в примерах была версия 1.8.0, но она работает с текущей в wordpresse. Просто поиск координат происходит при нажатии на кнопку и обработчик в скрипте перебивал обработку на кнопке обновления поста. Нажимаю "Обновить" и у меня ставится маркер на карте )
Изначальная проблема решена, спасибо.
Сколько раз уже этот вопрос обсуждался - даже гугл устал считать. Вот вам шпаргалка в стиле "один раз сделал и забыл навсегда", для повторного использования в будущем:
(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
Да! действительно там такое есть! Во первых мы можем удалить эту конструкцию. Во вторых как вы ранее написали это используется исключительно в админке, в пользовательском интерфейсе этот файл можно не использовать.
А вообще конструкция: noConflict - освобождение переменной, для избежания совпадения имен. Т.е. в нашем случае переменная jQuery освобождена и если вы далее по коду будете использовать $ то конфликтов не будет.
Борис Шепелев:
> в пользовательском интерфейсе этот файл можно не использовать
Да, можно. Но не стоит, так как на этот jQuery, вместе с noConflict надеются все остальные плагины экосистемы WordPress. Есть такая штука, называется "стандарт". И в экосистеме определенного программного продукта есть свои соглашения, которые следует соблюдать. Если этого не делать, то "в пользовательском интерфейсе" очень скоро будет грузиться одновременно несколько разных версий одной и той же библиотеки. Что не есть хорошо.