Снижаем потребление памяти WordPress
Одна из главных проблем WordPress — это достаточно высокое потребление памяти сервера. На некоторых хостингах это может стать проблемой (к iHead это, к счастью, не относится 🙂 ). Пару лет назад небезызвестный Lecactus предложил своё решение этой проблемы — использование так называемой lite-русификации, которая подразумевает подгрузку полного языкового файла только в админке WordPress, а на фронтенде (т.е. собственно на сайте, который видят пользователи) используется урезанный языковой файл, существенно урезанный.
При этом в wp-config.php
вносятся следующие изменения:
заменяем строку
define ('WPLANG', 'ru_RU');
на следующую:
if (strpos($_SERVER['REQUEST_URI'], 'wp-admin')) define ('WPLANG', 'ru_RU'); else define ('WPLANG', 'ru_RU_lite');
Разумеется, при таком подходе набор языковых файлов ru_RU_lite для вашей версии WordPress должен лежать в папке wp-content/languages
.
Такой подход позволяет сократить потребление памяти на 3-5 Мбайт (в зависимости от версии движка).
Но возможен и более кардинальный подход к оптимизации WordPress. Собственно, его идею мне подсказал именно подход Lecactus’а. Точнее — конструкция условия, добавляемая в wp-config.php
. Я подумал: а что если вовсе не подгружать русский язык для пользовательской части? Благо, при работе над шаблонами я полностью вычищаю все функции локализации, заменяя их на собственный код, использующий требуемые языковые конструкции (зачастую — более сложные, чем позволяет использовать сам WordPress). Сказано — сделано. Сокращаем код в файле конфигурации (в сравнении с lite-версией) до следующего:
if (strpos($_SERVER['REQUEST_URI'], 'wp-admin')) define ('WPLANG', 'ru_RU');
Результат — экономия ещё 3-5 Мбайт по сравнении с lite-версией, и примерно 7-10 Мбайт для полновесного русского WordPress. Довольно неплохо. Используя этот метод в дополнение к объектному кэшированию, я скоратил потребление памяти на некоторых сайтах с WordPress 3.0 до 3-4 Мбайт (при использовании 7-10 плагинов) или 12-15 Мбайт (при использовании большего числа плагинов).
В общем, если вы любите перелопачивать свои шаблоны, и их ручная русификация для вас не будет проблемой, можете смело использовать описанный выше способ. Делов на пару минут, а результат — на лицо.