Подстава от плагина Akismet: нарушение работы сайта

Сегодня обнаружился неожиданный глюк в работе сайта hope-recipes.ru, который явился следствием другого, более серьёзного глюка, нарушавшего нормальную работу сайта. Как выяснилось, корень проблемы скрывался в плагине Akismet, знакомом почти каждому владельцу сайта на WordPress, поскольку плагин включён в стандартную поставку движка. Далее по порядку.

Содержание статьи

Началась история с того, что сегодняшним вечером я добавил небольшую фишечку на «Рецепты Надежды»: если вы посетите актуальную в свете майских праздников статью о секретах и советах приготовления шашлыка (кстати, автор — ваш покорный слуга, в соавторстве с Надюшей и несколькими профессиональными шашлычниками). То увидите навигационное меню — содержание статьи. Для тех, кто сегодня уже «напосещался», сделал скриншот.

При нажатии на пункт меню происходит плавный скроллинг к соответствующему разделу статьи, по завершению которого заголовок раздела ещё и анимируется. Вот такой я мега-кодер. :) Кому интересно, вот код:

$('ul.mini_list a').click( function() {
	var href = $(this).attr( 'href' ), $point, y, s;
	if ( '#' == href[0] ) {
		$point = $( href );
		if ( 50 < ( y = $point.offset().top ) ) y -= 50;
		s = $point.css( 'font-size' );
		$point.css( { 'font-size': 0, 'opacity': 0 } );
		$( 'html, body' ).stop().animate( { 'scrollTop': y }, 1000,
			function() {
				$point.animate( { 'font-size': s, 'opacity': 1 }, 1000 );
			} );
	}
} );

На всякий случай: на вопрос, как этот код использовать на вашем сайте, отвечаю за Вебмани. :)

Так вот, код на сайт добавил, и только успел порадоваться плавному скроллингу, как обнаружил непорядок:

Так должно быть А так есть
красивая всплывающая подсказка Стандартная подсказка

Причём, у меня на localhost'е всё нормально работает. А на боевом сервере вот такая не-красота. Поковырявшись в скрипте, реализующем красивые всплывающие подсказки, я обратил внимание на другой косяк:

Развал вёрски

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

Верный боевой товарищ Firebug указал на виновника:

Akismet тормозит работу сайта

На картинке хорошо видно, как плагин Akismet тормозит работу сайта: 34 секунды браузер ждал, пока загрузится скрипт плагина, который прицепляется к форме комментирования WordPress и загружается не асинхронно. И только через 34 секунды, не дождавшись, браузер вынес вердикт: «Aborted» — и продолжил загрузку страницы.

Долго сказка сказывается, но быстро дело делается: в считанные секунды после такого открытия я уже был в админке — отключал плагин Akismet и обновлял кэш. После чего блог «Рецепты Надежды» заработал вновь шустро, как электровеник.

Вообще мне этот Акисмет и не нужен совсем. От спама хорошо защищает Antispam Bee. А Akismet только зря в спам кидает время от времени нормальные комментарии.

Удаление ссылок комментаторов

А, да, вспомнил: благодаря Акисмету рядом с URL комментатора появляется удобный крестик, позволяющий легко удалить сомнительную ссылку, не заходя в редактор комментария.

Досадно, но ладно. Кстати, проверил другие сайты — там скрипт Акисмета грузится нормально. А вот на «Рецептах» попробовал даже снова включить плагин — не заработало. Странно, обычно у техники бывает такое, что глюк пропадает, если выключить и снова включить.

В общем, надеюсь, что глюк Акисмета больше никак и никогда не проявится. А если проявится, то разработчики его исправят. И вообще в такие дни вспоминаешь совет — использовать минимально необходимый набор плагинов.

Запись опубликована в рубрике Web-мастеринг с метками , . Короткая ссылка для добавления в закладки: Подстава от плагина Akismet: нарушение работы сайта.

5 Responses

  1. Лидия говорит:

    Спасибо, подумаю насчет вебмани...была сегодня на блоге Надежды и подумала, как это она сделала?..Я вообще сейчас нахожусь в процессе обновления дизайна сайта ...

  2. Лидия говорит:

    Да, а цена вопроса?

    • Павлуха говорит:

      Цена договорная. Сначала надо с заданием определиться, там и цена будет назначена.

  3. Anna говорит:

    Здравствуйте! Я впервые на вашем блоге. С удовольствием прочитала ваш пост, так как у меня сейчас проблема с этим плагином. Выдаёт ошибку:"Fatal error: Call to undefined function set_url_scheme () in /home/users1/a/annabrilliant/domains/uspehavsem.ru/wp-content/plugins/akismet/class.akismet.php on line 840". У меня теперь почему-то не работает функция «Оставить комментарий», проблема для посетителей, а я в ужасе от этого. Не подскажете, как удалить эту ошибку. Я вообще-то в этом вопросе «полный чайник». Заранее Вас благодарю. С уважением, Анна.

    • Павлуха говорит:

      Анна, здравствуйте.

      Проблема в том, что у вас версия WP 3.3.2, а плагин использует функцию set_url_scheme(), которая появилась только в WP 3.5. Вам нужно обновить WordPress

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Иногда ваш комментарий может не отобразиться сразу после публикации - будто пропал. Не волнуйтесь, он не пропадёт и появится потом, после моего одобрения.