Прощай WPML

Вчера ночью отказался от использования WPML на своих сайтах. Решение было нелегкое, но производительность WPML-ки увы не на высоте. В данный момент для генерации главной странички сайта требуется около 20 sql-запросов. До удаления WPML это число равнялось 650! 650 sql-запросов! Время генерации страницы доходило до 7 секунд! Как не плясал, но количество запросов уменьшить не смог.

WPML + OpenId не работает

OpenId Logo

Столкнулся с проблемой — не работала авторизация по OpenID. Для интеграции OpenID в блог я использую плагин OpenID. Начал копать.

Для начала включил режим отладки. Для этого нужно в файлик /wp_config.php прописать:

define( 'WP_DEBUG', true );

Попробовал залогиниться на ЖЖ указав в качестве провайдера OpenID pulov.ru — отхватил страницу нотисов и варнингов. Последняя строка была такой:

Warning: Cannot modify header information - headers already sent by
(output started at /.../wp-content/plugins/sitepress-multilingual-cms/inc/hacks/missing-php-functions.php:41) in
/.../wp-content/plugins/openid/server.php on line 312

Полез в файлик, а там:

if(!defined('E_DEPRECATED')){ define(E_DEPRECATED, 8192); }

Ламерство какое-то. Поправим:

if(!defined('E_DEPRECATED')){ define('E_DEPRECATED', 8192); }

Пробуем снова и вижим уже Fatal Error, о ненайденной функции посреди класса плагина WPML. Добавляем проверочку в модуле sitepress.class.php:

if ( function_exists( 'add_meta_box' ) )
 add_meta_box('icl_div', __('Language', 'sitepress'), array($this,'meta_box'), $type, 'side', 'high');

Вуаля. Все работает.

Кстати, стоит заметить, что WPML еще тот глюк, варнинги и нотисы сыпет в лог изрядно :(