WPML
Статус
Решено
Заявлено для
WPML Multilingual CMS 3.1.9.7
Решено в
3.2

Обзор проблемы

Страницы становятся непригодными для использования или загружаются очень медленно.

Если Вы можете отслеживать, какие запросы выполняются, Вы найдете упоминания этого запроса:

SELECT meta_key

FROM wp_postmeta

GROUP BY meta_key

ORDER BY meta_key

LIMIT 1000;

Обходное решение

Вам нужно внести небольшое изменение в один файл WPML.

Вы можете использовать FTP-клиент для редактирования этого файла.


  1. Откройте wp-content/plugins/sitepress-multilingual-cms/inc/translation-management/translation-management.class.php

  2. Перейдите к строке 102, где Вы должны увидеть эту строку: $this->initial_custom_field_translate_states();

  3. Закомментируйте эту строку, добавив «//» в её начало.

  4. Сохраните файл

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

Мы заметили пик запросов, выполняемых как в бэкенде, так и во фронтенде. Это влияет только на очень-очень крупные сайты с миллионами записей postmeta (как на наших сайтах).

Этот запрос исходит из старой логики, которая больше не выполняет ничего важного. Мы полностью удалим её в WPML 3.2.

Если Вы заметили огромный пик при загрузке страниц, возможно, это Ваш случай.

Однако обратите внимание, что поскольку в WordPress 4.2 кодировка была изменена на UTF8-bytes, многие другие плагины и тема оформления могут демонстрировать проблемы с производительностью. Это обновление может изменить индексацию (как это произошло на нашем сервере) и может привести к неожиданному взаимодействию с MySQL (с чем мы столкнулись). Из-за этого вещи, которые раньше оказывали очень слабое влияние, внезапно становятся критическими.

Поэтому наш совет — включить журнал медленных запросов MySQL и проверить, какие запросы действительно влияют на производительность Вашего сервера.

Все известные проблемы →