Обратите внимание, что вместо WordPress
лучше использовать современную и качественную
систему управления сайтом - MaxSite CMS!

WordPress 2.1 (русская версия для любой кодировки)

5 февраля 2007 г. Просмотров: 5213 RSS 28
WordPress » Версии WP

В предыдущей записи я сообщил, что реализовал способ работы 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 или mysqldumpcPanel - резервирование). В случае проблем, вы сможете вернуться к предыдущей версии. Это важный шаг, не пропускайте его!
  • Установите кодировку блога в 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. Найдите в самом конце строчку
  • require_once(ABSPATH . 'wp-upgrade-all.php');

  • уберите символ комментария «#» в начале строки. Сохраните файл и загрузите его на сервер.
  • Войдите на главную страницу своего блога (НЕ админ-панели!).
  • Вы должны получить сообщение «UPDATE COMPLETED!». Это признак, что вы на верном пути.
  • Вновь откройте файл wp-config.php. Закоментируйте строчку (добавьте в начало символ «#»):
  • # require_once(ABSPATH . 'wp-upgrade-all.php');

  • Сохраните и загрузите файл на сервер. Не пропустите этот шаг!
  • Обновление завершено.

Теперь вам нужно перенести старые плагины и свой шаблон.

Перенос старых плагинов и шаблонов

Данный пункт появился в связи с тем, что WordPress 2.1 может не поддерживать старые шаблоны и плагины. Поэтому, после того, как вы активировали плагин или выбрали понравившийся шаблон, сразу проверяйте его работоспособность. Если плагин или шаблон содержат ошибку, то сервер отобразит её на экране. Если вы разбираетесь в PHP, то сможете самостоятельно её исправить. В противном случае обращайтесь к знающему человеку или на наш форум: http://forum.maxsite.org/

Сообщения о тестировании

После того, как вы установили или обновили свой блог, сообщите (в момментариях) об этой операции. Если возникли какие-либо осложнения, то напишите в чем проблема и как вы её решили.

http://maxsite.org;/wp-files/wp210-all-maxsite-org.zip;WordPress 2.1 (русская версия)(All);


twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru friendfeed.com google.com yandex.ru
Комментариев: 28
  1. Убили наповал две неадекватности в админке Wp 2.1.

    1. в разделе управления рубриками:

    2 лента 0 -1

    Это значит что ссылок в данной рубрике -1? ЭТО КАК? smile

    2. вообще ахтунг

    Личные настройки

    Изменить видимость:

    - Я хочу закрыть мой блог поисковых машин таких как Google и Technorati.

    - Блокировать поисковые системы, но разрешить посетителям читать мой блог.

    Кто-то сильно отжог smile. Либо переводчик, либо сами девелоперы.

    Это звучит примерно так:

    Вы хотите закрыть свой блог от индексации?

    - да

    - угу.

    Найдите как говориться два отличия smile

  2. 2007-02-07 в 01:34:28 | Максим

    В этой версии все уже исправлено. Не туда запостили...

  3. а я вот проблемы недогоняю...

    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.

    Если кому поможет - отлично.

    Если у меня почему-то "неправильно" всё это сделано - просьба объяснить почему - полезно будет smile

  4. 2007-02-09 в 13:45:49 | Владимир

    Вообще, классно. Вот только та же проблема, что и 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 . Правда при этом, пока всё работает

  5. 2007-02-09 в 23:24:05 | Максим

    Вот эта ошибка в capabilities.php связана с новыми функциями ролей пользователей. Я сам до конца так и не разобрался, почему при обновлении данные о доступе в некоторых случаях перестают работать. Получается, что данные нужно преобразовать в массив, но это не происходит. Похоже, что этот как-то связано с кодировкой, но каким боком к этому вопросы подойти, не ясно. В этой версии, кстати, я и ввел второй шаг инсталяции, в котором просто сносятся все существующие роли, и создаются заново.

    Но у вас, Владимир, думаю, все дело в сервере. smile

  6. 2007-02-10 в 00:36:54 | Владимир

    Максим: Учитывая прошлую проблем, пожалуй да. Большое спасибо)

  7. 2007-02-11 в 10:31:52 | Владимир

    Вот только мне не понятно, как теперь осуществлять перевод

  8. 2007-02-11 в 12:29:22 | Максим

    Как обычно smile. Только все файлы должны быть в UTF8.

  9. 2007-02-11 в 14:21:05 | Владимир

    Ах точно.) Просто у меня редактор, по умолчанию отображал текст в cp1251 и что-то не сообразил. Спасибо)

  10. Здорово...

  11. А что за бага с кешированием?

    С включенным кешированием отваливается часть сайдбара. Глубоко не копал, отключил его грубо, но неприятно это как-то...

  12. Вы мне обьясните, ЗАЧЕМ нужно было ставить кодировку UTF-8????? И каким образом теперь возможно перевести на нормальную (windows-1251)? Получается что при любом редактировании файлов скрипта, внесенный текст не отображается в нормальной кодировке. вобщем полная ерунда!

  13. 2007-02-13 в 22:03:28 | Максим

    На вопрос «зачем» см. выше. По остальному ничего не понятно :???:

  14. 2007-02-16 в 12:18:15 | Владимир

    Вот такая проблема, при открытии 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

  15. 2007-02-16 в 12:44:18 | Максим

    Вы неверно сохранили файл wp-language.php. Используйте Блокнот - он без ошибок сохраняет в UTF-8.

  16. 2007-02-16 в 14:05:24 | Владимир

    Мда. Что-то вообще странно. Сохранил в "юникоде" с помощью стандартного блокнота. При открытиии главной страницы стал отображаться только китайский или корейский текст и ничего больше. Вернул исходный файл - изменений не последовало. С помощью редактора gridinsoft сохранил его в кодировке windows - всё стало нормально отображаться и более того, rss стал работать. Ну не знаю прям, что за странности.

  17. 2007-02-16 в 14:15:33 | Владимир

    Ещё такая странность. Как на иностранном хостинге, так и на localhost не отображаются теги для редактирования записей. Решил эту проблему, установив плагин editormonkey - более "навороченный" визуальный редактор. Но насколько я понимаю, должен отображаться минимум тегов или нет?

  18. 2007-02-16 в 15:23:07 | Владимир

    1.При выполнении какго-либо действия в панели администратора (создание записи, активирование плагина, изменение названия рубрики), открывается пустая страница и вверху символы "сп»ї".

    2. Короткая ссылка рубрики принимает такой вид: "лента".

    3. В "Доска объявлений" отсутствует лента новостей.

    Это всё на хостинге.

  19. 2007-02-16 в 15:31:39 | Максим

    Кнопки должны отображаться. Может сбросить кэш браузера?

    По остальному.

    1. Вот эти символы свидетельствуют о неверно выполненой кодировке. Используйте Блокнот.

    2. Установите RusToLat

    3. Либо нет доступа к ленте (отображается не сразу, особенно при плохом соединении), либо лента кэшируется WordPress.

  20. Господа, я не так хорошо разбираюсь в программировании. Следовал инструкции, чтобы обновить WP. Получил проблему с кодировкой. Прошу помочь мне нормализовать работу блога. Спасибо за Вашу квалифицированную помощь.

  21. 2007-02-22 в 14:31:43 | Максим

    Ну, квалифицированная помощь бывает только за деньги wink.

    Судя по вашему сайту, у вас все сделано верно, но почему-то не работает перекодировка. Это может быть в двух случаях.

    1. Проверьте wp-db.php

    2. wp-config.php

    Оба этих файла должны идти из моей сборки.

  22. Максим wp-config строго по вашим рекомендациям.

    А вот по поводу wp-db впервые слышу. Какие изменения я должен внести в этот файл? Он взят полностью из вашей конфигурации.

  23. 2007-02-22 в 15:21:27 | Максим

    Ну тут только гадать можно. Я вижу, что данные без искажений, просто почему-то не перекодируются. Тут возможно несколько вариантов. В wp-config.php должен быть ровно такой, как в сборке. Должна быть указана кодировка блога UTF-8, а кодировка базы WINDOWS-1251, при этом должно быть разрешено перекодирование. Нарушите любое из условий - перекодировщик отключится. Проверьте еще раз.

  24. Максим, сломалось у меня там, что-то еще. Я готов обсудить с Вами стоимость Вашего платного участия в восстановлении моего блога. E-mail: namakner [at] mail.ru

  25. а у меня после апгрейда до 2.1 почему-то сглючила кодировка в фидах, при том что хтмл-контент отображается нормально ( Может подскажете как поправить? Блог в utf, база 1252, использую фидбернер, но дело не в нем...

  26. 2007-04-04 в 00:07:11 | Максим

    Может и в нем: http://holzweg.ru/wp-rss2.php

  27. Привет, подскажи пожалуйста следующую вещь:

    ставлю другу вордпресс, раньше с ним не сталкивался. БД в кодировке UTF-8;

    все посты выводятся нормально, но если я вставляю в коде страницы русские символы -- вместо них выводятся знаки вопроса.

    Сталкивался ли с таким? Куда копать?

  28. Не совсем точно выразился:

    * посты выводятся нормально независимо от моих действий

    * русские символы я вставляю в файл текущей темы

    * вот эти-то символы и выводятся в виде знаков "??????"

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Комментарий будет опубликован после проверки

(войти без комментирования)

Имя и сайт используются только при регистрации

Авторизация: Loginza.

(обязательно)

РЕКЛАМА Пульс науки - обучение туризм. Семинары по туризму. парктроник Jnj найти новости на сайте. Мозаика jnj mosaic.