Как автоматически обновлять WordPress Lecactus Edition (версия 2.7 и новее) без вмешательств в ядро системы

Сегодня утром получил очень интересное и неожиданное письмо от Сергея Бирюкова, который написал мне функцию, позволяющующую делать то же самое что делалось через «хак файла», но более элегантным способом — без вмешательства в исходный код и доступную к использованию любому.
Функция проста, но эффективна. Она ищет в базе значение «оригинального домена» и заменяет на «произвольный, который прописан в функции». Тот же самый «поиск и замена». Функцию я эту сделал в виде плагина и добавил также в файл ru_RU.php который находится в папке с языковыми файлами и автоматически подключается при выставленном в wp-config.php русском языке. Плагин идет в комплекте, но активировать его не обязательно. он включен только для того чтобы можно было включить «обновления с моего сайта» при случайном удалении/повреждении/изменении ru_RU.php.
20декабря2008г: Выложен обновленный плагин версии 1.1, который убирает конфликт если вы случайно активировали плагин и у вас выдает ошибку. можно теперь использовать одновременно и то что прописано в ru_RU.php и в плагине. Можете скачать обновленный архив. Дистрибутив также обновлен. Отдельно плагин можно

скачать по этой ссылке

. Плагин можно устанавливать и пользователям «официальной версии» чтобы при следующем обновлении автоматически перейти на мою версию.

Не важно ставили или нет вы вчерашний «пакет исправлений», но вы можете просто поставить сейчас новый, который возвращает на место оригинальный updates.php и добавляет в систему вышеназванную функцию «без вмешательство в ядро системы».

Скачать
Скачали раз

Сразу после установки вы не заметите эффекта, т.е. у вас будет писаться «URL на официальный сайт». Эффект будет заметен только при выходе следующей версии, а для тех кто хочет полностью убедиться что оно работает — достаточно в wp-includes/version.php временно изменить $wp_version = '2.7'; на $wp_version = '2.6';. У вас выскочит сообщение что требуется обновиться и при переходе на страницу обновлений вы увидите что у вас изменился URL на вот такой .
Таким образом у вас остается на 100% «оригинальное ядро» и все изменения сделаны через внешние функции, как это хотели видеть некоторые пользователи.

38 комментариев

Как автоматически обновлять WordPress 2.7 и выше моей сборки с моего сайта

Вы попросили — Кактус сделал для вас это!

В новом WordPress 2.7 появилось встроенное обновление, которое как я писал ранее само определяет язык установленной версии и предлагает URL-ы для скачивания и обновления. Ко мне обратилось несколько человек по почте и аське с просьбой сделать автообновление именно для моей версии, т.е. чтобы при автообновлении не менялся перевод на «официальный».

Порывшись в исходниках я нашел где генерируется запрос и что получает он в ответ, а мой давний друг Михаил подсказал как можно «обойти это» после того как я ему обрисовал проблему и что надо получить,  все оказалось элементарно просто!

Если у вас уже установлена моя версия WordPress 2.7 (скачана до появления этого поста), то достаточно скачать этот небольшой архив и распаковать на сервер в папку блога «как есть» с заменой исходных файлов. В нем содержится измененный файл отвечающий за обновления и обновленный перевод. Дистрибутив WordPress 2.7 также обновлен.

патч изменен- смотрите здесь

Чтобы убедиться что все у вас работает теперь правильно, отключите временно мой плагин «блокировка запросов на новые версии» (если используете), а затем пройдите в меню ИНСТРУМЕНТЫ — ОБНОВЛЕНИЯ. У вас должна ссылка на скачивание новой версии ru_RU отображаться как

http://lecactus.ru/download/wordpress-2.7-ru_RU.zip

. Естественно при выходе новых версий этот УРЛ будет сам меняться на новый? но также с правильным доменом.
Если это так значит все в порядке! Можете включать плагин блокировки проверки обновлений снова
Также вы можете обновляться кроме основного сайта с зеркала: откройте файл wp-includes/update.php
найдите там строку с текстом (имеется ввиду свежескачанный файл приведенный выше):

‘http://lecactus.ru/download/’, $body);

и замените путь на

http://wp2.lecactus.ru/download/

этот сервер находится не в россии (хостинг servage.net) — для кого то это может быть более оптимальный вариант по скорости и он точно доступен 24часа в сутки.
Успешно протестировано обновление на хостинге Мастерхост — проверялось обновление с моей русской версии 2.7-RC2 до моей русской финальной. Чтобы у вас корректно работало автообновление требуется поставить права 777(775,755) на папку wp-content либо создать в ней папку upgrade и дать права 777(775,755) только на нее. Права разные приведены т.к. для разных хостингов может быть по разному. Если что то не работает то ВП сам ругнется в самом начале что надо изменить права
wp27upgrade
Так что не так сильна проблема, как казалось это некоторым личностям…

28 комментариев

Официальный пакет небольших исправлений для WordPress 2.7

Первый пакет из пяти исправлений для WordPress 2.7 который рекомендуют использовать не дожидаясь версии 2.7.1

Скачать набор исправленных файлов все-в-одном (если у вас уже был установлен WordPress 2.7) и просто распаковать все содержимое сохраняя структуру папок поверх установленного WordPress.

В своем дистрибутиве файлы тоже обновил

Что исправлено:
1 при установке админу присвается уровень 0 вместо 10 (возникают проблемы с некоторыми плагинами). Если вы обновляли старую версию (до 2.7) то проблемы нет.
2 исправляется ошибка

Warning: curl_exec() has been disabled for security reasons in /home/nicetec/public_html/wp-includes/http.php on line 1022 Warning: curl_exec() has been disabled for security reasons in /home/nicetec/public_html/wp-includes/http.php on line 1027 Warning: Cannot modify header information — headers already sent by (output started at /home/nicetec/public_html/wp-includes/http.php:1022) in /home/nicetec/public_html/wp-includes/pluggable.php on line 850

помнится у кого то она была — писали в коментах
3 исправление для обновления плагинов
4 незакрытый тег STRONG в «редакторе темы»
5 исправление проблемы с постраничными комментариями (для тех кто использует встроенную в 2.7 разбивку коментов по страницам)

Эти исправления не затрагивают той проблемы, что описана в прошлом  посте. Поэтому если у вас та самая проблема, то скачайте полный патч этот официальный+тот неофициальный все-в-одном (в обновленный дистрибутив тот патч не включен)

Комментарии к записи Официальный пакет небольших исправлений для WordPress 2.7 отключены

Внеплановое обновление WordPress 2.6.2 до 2.6.3

Информация
Скачать

Патч для обновления WordPress 2.6.2 до WordPress 2.6.3

Скачать
Скачали 2164 раз

Дистрибутив версии 2.6.2 также обновлен до версии 2.6.3

2 комментария

Обновил дистрибутив PowerPack WP 2.6.2

Добавил несколько полезных плагинов (перечислены на странице скачивания), обновил устаревшие на текущий день, убрал в переводе из шапки админки «ссылки на форумы» (они все равно есть в подвале админки, а сверху они мешают когда включено много плагинов с отдельными меню верхнего уровня. Это можно сделать и через плагин adminimize, но все равно так лучше на мой взгляд).

Комментарии к записи Обновил дистрибутив PowerPack WP 2.6.2 отключены