WordPress 2.1 (русская версия для любой кодировки)
В предыдущей записи я сообщил, что реализовал способ работы WordPress с любой кодировкой базы данных. Теперь настал черед объяснить свои идеи и предложить потестировать эту версию.
Но, вначале несколько важных замечаний.
Прежде всего, особо замечу, что эта версия (я её назвал WordPress 2.1-all) пока не предназначена для массовой установки. Я не могу гарантировать вам её качественную работу и тем более сохранность ваших данных.
Эту версию я предлагаю скачать и установить только тем, кто пожелает её протестировать и сообщить о своём результате. Только после того, как будет определено, что не возникают проблемы, я объявлю о её официальном выходе.
Основные принципы
Их несколько.
Во-первых ваш блог будет работать в UTF-8. Всегда. Проблема чисто техническая - используемый AJAX будет работать только в UTF-8. Так, что другого пути просто нет.
Во-вторых. Если ваша база данных не способна работать в UTF-8, то вы можете установить для неё отдельную кодировку, например Windows-1251.
В-третьих. Вам не нужно сейчас же думать о перекодировании базы данных. В большинстве случаев с этим справится встроенный «перекодировщик».
В-четвертых. Все внешние файлы (шаблоны, плагины) нужно переконвертировать в UTF-8. Для этого нужно их скачать и пересохранить в UTF-8 (например Блокнотом).
Варианты перехода
После обновления мы можем получить два варианта:
- Блог (UTF-8) - БД (UTF-8)
- Блог (UTF-8) - БД (WINDOWS-1251)
Первый вариант самый простой, поскольку подразумевает обычную работу WordPress. Второй вариант нас интересует гораздо больше.
Для уже существующих блогов, нужно учитывать в какой кодировке они работают. Если у них кодировка UTF-8, то очевидно, им нет смысла обновлять базу и переходить на WINDOWS-1251 (хотя это и возможно).
Если же существующий блог работает в WINDOWS-1251, то у нас остается только один вариант:
- Блог (был WINDOWS-1251, стал UTF-8)
- БД (была WINDOWS-1251, осталась WINDOWS-1251).
Важное замечание. Текущие настройки инсталяции/обновления WordPress установлены именно для такого варианта.
Обратите внимание, что я, хоть и пишу «была/стала», вовсе не означает, переконвертирование самой базы данных. В даном случае мы вообще не касаемся базы данных - перекодирование происходит «на-лету» при получении или отправке данных в базу.
Установка WordPress
Если вы устанавливаете WordPress с «нуля», то инструкция будет несложная.
- Загрузите на сервер файлы из WordPress 2.1-all.
- Откройте файл wp-config-sample.php и добавьте в него данные для доступа к БД.
- Определите каким образом будут храниться данные в MySQL. Вы можете задать кодировку отличную от кодировки блога (кодировка блога всегда будет UTF-8!). Например, вы хотите, чтобы кодировка базы отличалась от кодировки блога, то установите опцию MAXSITE_DB_CONVERT в true. Если кодировка блога и базы данных совпадает, то установите этот параметр в false - в этом случае работа WordPress будет осуществляться как обычно.
- Если кодировка базы будет отличаться от кодировки блога (MAXSITE_DB_CONVERT = true), то вам нужно указать кодировку БД: параметр MAXSITE_DB_CHARSET (в большинстве случаев это будет WINDOWS-1251).
- Пояснение. Для корректной работы кодировщика требуется наличие на сервере функций mb_convert_encoding или iconv. Как правило эти функции присутствуют на сервере. Если же их нет, то кодировщик не будет работать.
- Больше ничего в файле wp-config-sample.php не менять!
- Сохраните wp-config-sample.php как wp-config.php и загрузите его на сервер.
- Зайдите на главную страницу сайта. WordPress сам предложит выполнить инсталяцию.
- Заполните предлагаемые поля. Обязательно указывайте реальный e-mail.
- После инсталяции WordPress создаст для вас логин и пароль администратора. Сохраните его, иначе вы не сможете войти в админ-панель.
Установка завершена.
Обновление уже существующего блога
Обратите внимание на столь детальную инструкцию. Если вы хотите избежать лишних проблем, строго следуйте её пунктам. Они написаны не просто так!
- Перед обновлением зайдите в админ-панель.
- Переключите шаблон на Default.
- Отключите все плагины.
- Сделайте бэкап базы данных с помощью phpMyAdmin или mysqldump (в cPanel - резервирование). В случае проблем, вы сможете вернуться к предыдущей версии. Это важный шаг, не пропускайте его!
- Установите кодировку блога в UTF-8 (Настройки - Чтение). Если ваш блог работал в другой кодировке, то вы дожны увидеть знаки вопросов. Так и должно быть!
- Переименуйте старые каталоги и файлы WordPress'а, включая и /wp-content/ на сервере.
- Если есть файл .htaccess, то его необходимо оставить.
- Загрузите на сервер новые файлы из WordPress 2.1-all. Если у вас FTP-клиент спрашивает о замене файлов, значит вернитесь к предыдущему пункту.
- Откройте файл wp-config-sample.php и добавьте в него данные для доступа к БД (из старого wp-config.php).
- Определите каким образом будут храниться данные в MySQL. Вы можете задать кодировку отличную от кодировки блога (кодировка блога всегда будет UTF-8!). Например, вы хотите, чтобы кодировка базы отличалась от кодировки блога, то установите опцию MAXSITE_DB_CONVERT в true. Если кодировка блога и базы данных совпадает, то установите этот параметр в false - в этом случае работа WordPress будет осуществляться как обычно.
- Если кодировка базы будет отличаться от кодировки блога (MAXSITE_DB_CONVERT = true), то вам нужно указать кодировку БД: параметр MAXSITE_DB_CHARSET (в большинстве случаев это будет WINDOWS-1251).
- Пояснение. Для корректной работы кодировщика требуется наличие на сервере функций mb_convert_encoding или iconv. Как правило эти функции присутствуют на сервере. Если же их нет, то кодировщик не будет работать.
- Больше ничего в файле wp-config-sample.php не менять!
- Особое внимание тем, кто переходит с других сборок WordPress. Не используйте свой старый wp-config.php, обязательно возьмите тот, что входит в эту сборку!
- Сохраните wp-config-sample.php как wp-config.php и загрузите его на сервер.
- Зайдите в админ-панель. WordPress сам предложит обновится. Соглашайтесь. Если после обновления WordPress опять предлагает обновиться (иногда встречается такой глюк), то просто закройте страничку.
- При попытке войти в админ-панель, у вас должно появиться сообщение о недостаточных правах для этого действия, либо сообщение об ошибке.
- Если у вас всё сразу заработало, значит обновление для вас завершено. Скорее всего кодировка блога у вас совпадает с базой данных и дальнейшие действия вам не понадобятся. Иначе продолжайте.
- Откройте файл wp-config.php. Найдите в самом конце строчку
- уберите символ комментария «#» в начале строки. Сохраните файл и загрузите его на сервер.
- Войдите на главную страницу своего блога (НЕ админ-панели!).
- Вы должны получить сообщение «UPDATE COMPLETED!». Это признак, что вы на верном пути.
- Вновь откройте файл wp-config.php. Закоментируйте строчку (добавьте в начало символ «#»):
- Сохраните и загрузите файл на сервер. Не пропустите этот шаг!
- Обновление завершено.
require_once(ABSPATH . 'wp-upgrade-all.php');
# require_once(ABSPATH . 'wp-upgrade-all.php');
Теперь вам нужно перенести старые плагины и свой шаблон.
Перенос старых плагинов и шаблонов
Данный пункт появился в связи с тем, что WordPress 2.1 может не поддерживать старые шаблоны и плагины. Поэтому, после того, как вы активировали плагин или выбрали понравившийся шаблон, сразу проверяйте его работоспособность. Если плагин или шаблон содержат ошибку, то сервер отобразит её на экране. Если вы разбираетесь в PHP, то сможете самостоятельно её исправить. В противном случае обращайтесь к знающему человеку или на наш форум: http://forum.maxsite.org/
Сообщения о тестировании
После того, как вы установили или обновили свой блог, сообщите (в момментариях) об этой операции. Если возникли какие-либо осложнения, то напишите в чем проблема и как вы её решили.
- Русская версия WordPress 2.0.5
- Обзор WordPress 2.0.5
- WordPress 2.1 (русская версия)
- Русский WordPress 2.3.1 beta, а также несколько новостей
- Русский WordPress 2.2.1
- Вышел WordPress 2.2
- Русский WordPress 2.2 для любой кодировки
- Русский WordPress 2.2.3
- Вышел WordPress 2.1
- Русская версия WordPress 2.0.8
- Русский WordPress MU 1.3
- Вышел WordPress 2.0.5
- Версия WordPress в кодировке WINDOWS-1251
- WordPress 2.0.9 и 2.1.1
- Русский WordPress 2.3.1 RC1


Убили наповал две неадекватности в админке Wp 2.1.
1. в разделе управления рубриками:
2 лента 0 -1
Это значит что ссылок в данной рубрике -1? ЭТО КАК?
2. вообще ахтунг
Личные настройки
Изменить видимость:
- Я хочу закрыть мой блог поисковых машин таких как Google и Technorati.
- Блокировать поисковые системы, но разрешить посетителям читать мой блог.
Кто-то сильно отжог
. Либо переводчик, либо сами девелоперы.
Это звучит примерно так:
Вы хотите закрыть свой блог от индексации?
- да
- угу.
Найдите как говориться два отличия
В этой версии все уже исправлено. Не туда запостили...
а я вот проблемы недогоняю...
2.1 я не пробовал еще на вкус, но поделюсь опытом небольшим, если кому поможет - буду рад.
Столкнулся со следующим - делал блог на локальном компе, и когда восстанавливал через phpmyadmin получал крякозябры, из-за того, что по умолчанию WP в UTF-8 а база - в cp1251. Как вышел из ситуации (при этом WP=UTF-8, база в cp1251, сопоставление базы в cp1251): ставлю блог как обычно, врубаю плагин - http://www.lesterchan.net/portfolio/programming.php WP-DBManager, смотрю мой файл бэкапа локальной базы в UTF-8 (вобщем чтобы русские буквы читабельны были), копирую в буфер, иду в SQL запросы WP-DBManager, там жму вставить и выполнить. Крякозябр нету, блог в UTF-8, база в cp1251.
Если кому поможет - отлично.
Если у меня почему-то "неправильно" всё это сделано - просьба объяснить почему - полезно будет
Вообще, классно. Вот только та же проблема, что и WP2.1 UTF-8 осталась, при установке -
Warning: array_merge() [function.array-merge]: Argument #2 is not an array in E:\Server\sambar64\docs\Test\wp-includes\capabilities.php on line 190. Правда при этом, пока всё работаетВот эта ошибка в capabilities.php связана с новыми функциями ролей пользователей. Я сам до конца так и не разобрался, почему при обновлении данные о доступе в некоторых случаях перестают работать. Получается, что данные нужно преобразовать в массив, но это не происходит. Похоже, что этот как-то связано с кодировкой, но каким боком к этому вопросы подойти, не ясно. В этой версии, кстати, я и ввел второй шаг инсталяции, в котором просто сносятся все существующие роли, и создаются заново.
Но у вас, Владимир, думаю, все дело в сервере.
Максим: Учитывая прошлую проблем, пожалуй да. Большое спасибо)
Вот только мне не понятно, как теперь осуществлять перевод
Как обычно
. Только все файлы должны быть в UTF8.
Ах точно.) Просто у меня редактор, по умолчанию отображал текст в cp1251 и что-то не сообразил. Спасибо)
Здорово...
А что за бага с кешированием?
С включенным кешированием отваливается часть сайдбара. Глубоко не копал, отключил его грубо, но неприятно это как-то...
Вы мне обьясните, ЗАЧЕМ нужно было ставить кодировку UTF-8????? И каким образом теперь возможно перевести на нормальную (windows-1251)? Получается что при любом редактировании файлов скрипта, внесенный текст не отображается в нормальной кодировке. вобщем полная ерунда!
На вопрос «зачем» см. выше. По остальному ничего не понятно :???:
Вот такая проблема, при открытии rss2:
п»їWarning: Cannot modify header information - headers already sent by (output started at E:\Server\sambar64\docs\Test\wp-language.php:1) in E:\Server\sambar64\docs\Test\wp-rss2.php on line 8
http://localhost/test Фото и дизайн... Thu, 08 Feb 2007 19:48:37 +0000 http://wordpress.org/?v=2.1 en http://localhost/test/?p=1 http://localhost/test/?p=1#comments Thu, 08 Feb 2007 19:48:37 +0000 admin http://localhost/test/?feed=rss2&p=1
Вы неверно сохранили файл wp-language.php. Используйте Блокнот - он без ошибок сохраняет в UTF-8.
Мда. Что-то вообще странно. Сохранил в "юникоде" с помощью стандартного блокнота. При открытиии главной страницы стал отображаться только китайский или корейский текст и ничего больше. Вернул исходный файл - изменений не последовало. С помощью редактора gridinsoft сохранил его в кодировке windows - всё стало нормально отображаться и более того, rss стал работать. Ну не знаю прям, что за странности.
Ещё такая странность. Как на иностранном хостинге, так и на localhost не отображаются теги для редактирования записей. Решил эту проблему, установив плагин editormonkey - более "навороченный" визуальный редактор. Но насколько я понимаю, должен отображаться минимум тегов или нет?
1.При выполнении какго-либо действия в панели администратора (создание записи, активирование плагина, изменение названия рубрики), открывается пустая страница и вверху символы "сп»ї".
2. Короткая ссылка рубрики принимает такой вид: "лента".
3. В "Доска объявлений" отсутствует лента новостей.
Это всё на хостинге.
Кнопки должны отображаться. Может сбросить кэш браузера?
По остальному.
1. Вот эти символы свидетельствуют о неверно выполненой кодировке. Используйте Блокнот.
2. Установите RusToLat
3. Либо нет доступа к ленте (отображается не сразу, особенно при плохом соединении), либо лента кэшируется WordPress.
Господа, я не так хорошо разбираюсь в программировании. Следовал инструкции, чтобы обновить WP. Получил проблему с кодировкой. Прошу помочь мне нормализовать работу блога. Спасибо за Вашу квалифицированную помощь.
Ну, квалифицированная помощь бывает только за деньги
.
Судя по вашему сайту, у вас все сделано верно, но почему-то не работает перекодировка. Это может быть в двух случаях.
1. Проверьте wp-db.php
2. wp-config.php
Оба этих файла должны идти из моей сборки.
Максим wp-config строго по вашим рекомендациям.
А вот по поводу wp-db впервые слышу. Какие изменения я должен внести в этот файл? Он взят полностью из вашей конфигурации.
Ну тут только гадать можно. Я вижу, что данные без искажений, просто почему-то не перекодируются. Тут возможно несколько вариантов. В wp-config.php должен быть ровно такой, как в сборке. Должна быть указана кодировка блога UTF-8, а кодировка базы WINDOWS-1251, при этом должно быть разрешено перекодирование. Нарушите любое из условий - перекодировщик отключится. Проверьте еще раз.
Максим, сломалось у меня там, что-то еще. Я готов обсудить с Вами стоимость Вашего платного участия в восстановлении моего блога. E-mail: namakner [at] mail.ru
а у меня после апгрейда до 2.1 почему-то сглючила кодировка в фидах, при том что хтмл-контент отображается нормально ( Может подскажете как поправить? Блог в utf, база 1252, использую фидбернер, но дело не в нем...
Может и в нем: http://holzweg.ru/wp-rss2.php
Привет, подскажи пожалуйста следующую вещь:
ставлю другу вордпресс, раньше с ним не сталкивался. БД в кодировке UTF-8;
все посты выводятся нормально, но если я вставляю в коде страницы русские символы -- вместо них выводятся знаки вопроса.
Сталкивался ли с таким? Куда копать?
Не совсем точно выразился:
* посты выводятся нормально независимо от моих действий
* русские символы я вставляю в файл текущей темы
* вот эти-то символы и выводятся в виде знаков "??????"