Исправления ошибок Google Webmaster вида http://site.ru/http://site.ru/ для WordPress

Изучал ошибки своего блога в Google Webmaster Tools и заметил группу ошибок вида:

disassembly/kak-razobrat-telefon-nokia-6233/http%3A%2F%2Fpaulov.ru%2Fdisassembly%2Fkak-razobrat-telefon-nokia-6233%2F 404 3/13/12
motors/sobiraem_richag_akpp_montero_pajero/http%3A%2F%2Fpaulov.ru%2Fmotors%2Fsobiraem_richag_akpp_montero_pajero%2F 404 3/15/12
disassembly/kak_razobrat_telefon_siemens_s65/http%3A%2F%2Fpaulov.ru%2Fdisassembly%2Fkak_razobrat_telefon_siemens_s65%2F 404 3/14/12
disassembly/kak-razobrat-telefon-nokia-6300/http%3A%2F%2Fpaulov.ru%2Fdisassembly%2Fkak-razobrat-telefon-nokia-6300%2F 404 3/12/12

Найти эти ссылки в коде страниц невозможно, и непонятно откуда они берутся. Очевидно что их внедряет в код некий плагин. Пока выясняю это придумал решение-костыль, который нужно сунуть в functions.php вашей темы:

if ( preg_match( '/\/http(?:\\:\/\/|%3A%2F%2F)www\\.free-writer\\.ru/', $_SERVER['REQUEST_URI'] ) ) {

	$fm = array();
	if ( preg_match( '/\/(http(?:\\:\/\/|%3A%2F%2F)www\\.free-writer\\.ru.*)/', $_SERVER['REQUEST_URI'], $fm ) && isset( $fm[1] ) && $fm[1] ) {

		header('HTTP/1.0 301 Moved Permanently');
		header('Location: '. urldecode( $fm[1] ) );
		die;

	}
}

Поиски продолжаются :)

Небольшие обновления

Обновил WordPress до версии 3.0.3, захожу в админку, а там предлагают до 3.0.4 обновиться :) Что ж делать — обновился еще раз :) Автоматическое обновление почему-то не работает, приходится все руками делать.

Немного изменил шапочку, уменьшил её на 90 пикселей и более чем на 150 Кб :)

Шринканул css-ы, сайт должен чуть чуть быстрее загружаться.

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 еще тот глюк, варнинги и нотисы сыпет в лог изрядно :(