Нередко на форумах поддержки встречаются сообщения, что де WordPress забывает русский язык, попав на сервер с PHP5. Мне и самому довелось столкнуться с такой неприятной особенностью. Советы же в основном заключаются в рекомендациях перейти на PHP4. А это, понятное дело, не всегда возможно. Однако оказалось, что решение существует, и притом очень простое.

Я нашел его на trac.wordpress.org Суть в том, что подпрограмма загрузки файла локализации ru_RU.mo неправильно определяет его сигнатуру и порядок следования байт, видимо, из-за несоответствия типов данных. В файле /wp-includes/gettext.php есть следующий фрагмент кода:

if ($magic == ($MAGIC1 & 0xFFFFFFFF) || ($magic == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms
$this->BYTEORDER = 0;
} elseif ($magic == ($MAGIC2 & 0xFFFFFFFF)) {
$this->BYTEORDER = 1;
} else {
$this->error = 1; // not MO file
return false;
}

Достаточно его поменять на такой:
if (($magic & 0xFFFFFFFF) == ($MAGIC1 & 0xFFFFFFFF) || ($magic & 0xFFFFFFFF) == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms
$this->BYTEORDER = 0;
} elseif (($magic & 0xFFFFFFFF) == ($MAGIC2 & 0xFFFFFFFF)) {
$this->BYTEORDER = 1;
} else {
$this->error = 1; // not MO file
return false;
}

и magic`и будут нормально сравниваться.

Исправленный gettext.php для WordPress 2.2.2 можно взять тут. Хочется верить, что в версии 2.2.3 этот момент уже будет учтен.