Перестал работать медиа загрузчик WordPress
Обновился до версии 3.3.1, поставил новую тему и конечно же, захотел добавить новый пост. Да не простой пост, а с картинкой. Но не тут-то было, новый media-загрузчик загружался, но на нажатие на кнопку "Выберите файлы" ничего не происходило. А по нажатию на ссылку "Попробуйте загрузчик браузера. ", я получал окно с 400 ошибкой. "Неплохо обновился" - подумал я и полез в поиск..
Надо сказать, что последнее время, я трачу в поиске, большую часть своего времени. Не потому что, мне там нравится, а потому что все с чем сталкиваюсь, реально кривое какое-то. Начиная от настройки софта на linux серверах, заканчивая использованием сторонних библиотек в разработке. Единственное что радует меня, это новые темы для постов, и накопление опыта, который рядовые разработчики, нигде не смогут получить.. Соответственно я на фоне их, могу продать свои скиллы немного дороже.. Ну, хватит соплей, вернемся к поломанному загрузчику..
Первое что я подумал, это тупо ошибки в коде загрузчика. Открывшаяся консоль FireBug-а сказала, что я не прав, там было чисто. Тогда я подумал, что проблема в AdBlock-е, но он был отключен. На всякий случай, я проверил в другом броузере, поведение такое же, проблемы либо в скриптах, либо на сервере. Дальше я проверил права на папки с upload-ом, там тоже было все ок. Потом я нашел этот пост на хабре, в комментах которого говорилось, что могут быть проблемы из-за скриптов. Ага, значит возможно это не проблема WP, а проблема темы. Пошел изучать тему..
В теме у меня была вот такая загрузка jquery, в файле functions.php:
1 2 3 4 5 |
wp_deregister_script('jquery'); wp_register_script('jquery', ("https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"), false, '1.6.4'); wp_enqueue_script('jquery'); |
самая первая строчка меня и насторожила. Если деактивируется старый jquery, то возможно хериться какой-то функционал, т.к. в WP версия может быть иная. Так и получилось, я закоментил, это подключение, и загрузчик заработал. Отлично.
Теперь мне оставалось только, добавить подключение JQuery в саму тему. Это я сделал обычным образом, добавив подключение скрипта через html теги в файле header.php:
1 2 3 4 5 6 |
<head> // разный код <script language="JavaScript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script> </head> |
после этого проверил, функционал темы, который использовал JQuery, он работал. Значит проблема решена!
--[добавлено 02.07.12]--
Как заметил правильно в комментариях xelay, правильнее все же использовать подключение через functions.php. Поэтому я отказался от подключения jquery в header.php, и переписал подключение в functions.php, вот так:
1 2 3 4 5 6 7 8 9 10 |
add_action( 'init', 'jquery_register' ); function jquery_register() { if ( !is_admin() ) { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', ( 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' ), false, null, true ); wp_enqueue_script( 'jquery' ); } } |
т.е. я подключаю JQuery для всего кроме админки. Этот способ так же работает, и проблемы не замечено.
Author: | Tags: /
| Rating:
3 comments.
Write a comment