trackback и pingback на WordPress
В русскоязычной части интернета достаточно много информации на тему трекбеков. Но все они не раскрывают тему в достаточной мере, чтобы можно было применять информацию на практике. Я решил собрать всю информацию воедино, и раскрыть некоторые нюансы по работе с трекбеками для движка WordPress.
Как уже многие знают, trackback – это механизм уведомления других сайтов (не обязательного блогов). О пингбэках (pingbacks) сейчас говорить не будем, чтобы не запутаться в формулировках. Трекбек применяется в тех случаях, когда мы хотим оставить комментарий на чью-либо статью в собственном блоге. При этом автору статьи отправляется уведомление, что его статья послужила вдохновением для написания очередного поста. Другими словами, автору статьи, а точнее блогу, отправляется информация, что на определённый пост блога сослались, используя механизм трекбека.
Выглядит это следующим образом:
Как видите, эта возможность напоминает обыкновенный комментарий. Отличие только в том, что вместо имени автора подставляется название блога, а вместо текста комментария подставляется вырезка из статьи. Также обратите внимание, что перед вырезкой идёт заголовок ссылающейся статьи.
Механизм трекбеков очень активно используется спамерами, поскольку он не требует какого-либо подтверждения. Одобрение трекбека в оснастке комментариев – это уже другой вопрос. Из этого следует, что всё, что необходимо знать спамеру – это адрес вашего блога или статьи. Именно поэтому многие блогеры отключают возможность использования трекбеков.
Теперь о возможности включения и выключения трекбеков на движке WordPress.
За включение и отключение трекбеков отвечает параметр «Разрешить оповещения с других блогов (уведомления и обратные ссылки)», который находится на закладке «Обсуждение» меню «Параметры».
В отдельных случаях можно включить эту возможность при написании поста. Для этого необходимо установить флажок «Разрешить обратные ссылки и уведомления».
Отправка трекбеков
Чтобы отправить трекбек средствами WordPress, необходимо отыскать на исходной странице так называемый Trackback URL (адрес для приема трекбеков), и скопировать его в буфер обмена. Если блог построен на WordPress, то адрес Trackback URL обычно состоит из адреса записи и окончания /trackback. Например:
http://guideto.ru/bez-rubriki/trackback-i-pi…k-na-wordpress/trackback
В том случае, если WordPress-блог не использует SEO-ссылки (ЧПУ), то Trackback URL выглядит так:
http://guideto.ru/wp-trackback.php?p=266, где 266 – это ID записи.
У меня на блоге Trackback URL можно найти перед списком комментариев:
После того как мы получили Trackback URL, создаем новую запись, и вставляем наш адрес в поле «Отправить обратные ссылки»:
В результате этих действий будет отправлен трекбек по указанной ссылке. Как видите, процедура несложная.
А чтобы убедиться, что трэкбэк был отправлен, необходимо войти в режим редактирования записи, и обратить внимания на поле «Отправлены уведомления»:
В указанном месте будут перечислены все адреса, на которые были отправлены уведомления.
Как избавиться от trackback спама?
Очень актуальная тема на сегодняшний день. На первый взгляд кажется, что для этого достаточно просто отключить параметр «Разрешить оповещения с других блогов (уведомления и обратные ссылки)» в параметрах WordPress-блога. Но дело в том, что данный параметр отключает возможность уведомлений только для новых записей.
Поэтому для решения проблемы спама, необходимо открыть каждую запись блога в режиме редактирования, и снять указанный флажок:
В том случае, если записей у вас много, можно воспользоваться SQL-запросом, отключающим этот параметр. Легче всего сделать это через приложение phpMyAdmin.
Откройте phpMyAdmin, и выберите в левом списке необходимую базу данных.
Перейдите на закладку SQL, и внесите в неё следующие строки:
UPDATE wp_posts SET ping_status='closed' WHERE post_status='publish' AND post_type='post';UPDATE wp_posts SET ping_status='closed' WHERE post_status='publish' AND post_type='page';
После этого нажмите ОК, и дождитесь сообщения об успешном выполнении запроса:
Конечно можно было пойти более легким путем, и просто удалить файл wp-trackback.php, но я бы не советовал вам этого делать. А поскольку мы затронули название этого файла, рассмотрим техническую сторону механизма трекбеков.
Техническая сторона медали
Отправка трекбека – это передача порции информации через HTTP-запрос, используя метод POST. Совершенно очевидно, что должен существовать обработчик, который будет принимать эту информацию. Для WordPress это файл wp-trackback.php, находящийся в корне сайта. Внимательные блогеры уже давно его заметили.
Если говорить о ЧПУ, то запрос перенаправляется на wp-trackback.php, если адрес поста заканчивается ключевым словом /trackback. В случае обычных ссылок запрос идёт напрямую к wp-trackback.php. Вы это могли заметить, когда я писал о Trackback URL.
Сейчас уже не так много WordPress-блогов, где можно найти упоминание о Trackback URL для обратного трека.
А ведь он необходим, чтобы вам могли отправить уведомление о ссылке.
Чтобы вставить в шаблон записи ссылку для трекбека, воспользуйтесь следующей конструкцией:
Trackback на текущую запись
Теперь продолжим наш рассказ о пингвинах.
Обработчику передаются следующие переменные:
- blog_name – название сайта или блога.
- url – адрес сайта или блога.
- title – заголовок статьи.
- exerpt – вырезка из статьи.
Обязательным параметром из них является только один — url.
Ну а чтобы скорректировать запрос определённой записи (или странице), методом GET передаем переменную p, содержащую ID записи.
В случае удачного запроса обработчик возвращает следующее сообщение (в XML-формате):
0
В случае неудачного запроса возвращает ошибку в том же формате:
1 В этом месте следует описание ошибки
Собственно, на этом можно и заканчивать.
Избавляемся от trackback- и pingback-спама на WordPress-сайте
Trackback- и pingback-спам — это одна из разновидностей спама на WordPress-сайтах. Его суть заключается в том, что с помощью всевозможных скриптов и программ к записям вашего блога отправляют уведомления о том, что, якобы, на вас сослались (хотя на самом деле это не так), и в этих уведомлениях ставят ссылки на свои продвигаемые сайты.
Функции трекбэка и пингбэка сегодня по сути не несут никакой пользы для сайта и используются преимущественно для рассылки спама, поэтому я считаю, что проблему trackback- и pingback-спама нужно решать на корню. Чтобы избавиться от этого вида спама раз и навсегда, необходимо просто-напросто полностью заблокировать получение уведомлений с чужих сайтов к страницам вашего блога.
Данный процесс можно разделить на 2 части:
- Отключаем trackback’и и pingback’и для новых записей — для этого заходим в админку WordPress на страницу «Настройки -> Обсуждение» и снимаем галочку с опции «Разрешить получение от других блогов уведомлений«. В результате во всех новых записях получение трекбэков и пингбэков будет автоматически отключено.
- Отключаем trackback’и и pingback’и для старых записей — для этого необходимо выполнить следующий SQL-запрос через phpMyAdmin (на всякий случай перед этим действием создайте резервную копию базы данных):
UPDATE wp_posts SET ping_status='closed' WHERE post_status = 'publish' AND post_type = 'post';
UPDATE wp_posts SET ping_status='closed' WHERE post_status = 'publish' AND post_type = 'page'; Запрос из первой строки отключает trackback’и и pingback’и для всех записей, запрос из второй строки — для всех «страниц«.
Если у вас префикс таблиц в БД отличается от
wp_
, то нужно его заменить на свой.
На этом вопрос о trackback- и pingback-спаме можно считать закрытым. Больше он вас не должен беспокоить.
Что такое ping и traсkbaсk?
Попробую-ка пролить ясность в этом вопросе , поскольку он не такой простой, как кажется на первый взгляд. За сухим «ping и traсkbaсk - технологии, позволяющие взаимодействовать сайтам между собой», мало что становится понятно. Так что по-порядку.
Основная идея
Суть взаимодействия между сайтами очень проста: вы посылаете какому-то сайту определенный запрос, тот его анализирует и, если нужно, выполняет определенное действие, например публикует ваш запрос как комментарий. То есть когда вы хотите оставить комментарий к чужой статье на своем сайте, все что вам нужно сделать, так это указать адрес чужого сайта.
Пинги и трэкбаки - это два механизма, через которые реализуются такие возможности.
Пинги (ping)
Сайт «А» принадлежит Васе, а сайт «Б» - вам. Вася опубликовал на своем сайте статью, которая вам очень понравилась. У себя на сайте вы решили рассказать о том, что Вася грамотный специалист и прямо в тексте размещаете ссылку на его статью.
После того, как вы нажали кнопку «Опубликовать», WordPress (или аналогичный «движок») анализирует ваш текст, вычленяет из него все найденные ссылки и по каждой из них пошлет специальный запрос (ping), который только и состоит, как из ссылки на вашу статью.
Сайт Васи, получив такой запрос (ping), считывает уже вашу статью и пытается найти в ней свой адрес (статья Васи), и если находит, то публикует вашу ссылку в виде комментария. Вот примерно так:

Трэкбаки (traсkbaсk)
В отличие от пингов, трэкбэки более сложный механизм, но вместе с тем и более управляемый.
На практике это выглядит так: когда кто-то публикует статью, то помимо адреса этой статьи, рядышком указывается специальная ссылка «traсkbaсk» - именно эту ссылку нужно указывать в отдельном поле («Послать traсkbaсk») в редакторе WordPress'а.

Traсkbaсk vs Ping
Если вы счастливый обладатель WordPress'а, то вам доступны обе эти технологии. Поэтому вы можете использовать их одновременно. Но, все-таки существуют небольшие «подводные камни», которые необходимо учитывать при использовании как пингов, так и трэкбаков.
Пинги удобны тем, что не нужно заботиться и искать специальные трэкбаковские ссылки - прямо в тексте указали адрес, все остально будет сделано автоматически. К минусам пингов следует отнести следующие моменты:
- Вы никак не контролируете процесс отправки самого пинга - чужому сайту отправляется только ваш адрес и ничего больше.
- Вы не знаете в каком виде будет опубликован ваш комментарий. Все дело в том, что принимающий блог будет искать ссылку на себя на вашем сайте и, найдя её, удалит весь лишний текст, оставив только примерно 50-100 символов до и после ссылки. Именно поэтому комментарии, посылаемые как пинги часто выглядят обрезанными в самом неподходящем месте.
- Проблемы с кодировкой. Принимающий блог (если это WordPress) не анализирует кодировку вашего блога («meta charset»). На моем сайте вы найдете исправление этого недочета для WordPress'а, но это только позволит вашему блогу корректно принимать пинги.
Трэкбаки в этом разрезе более надежны. Поскольку принимающий блог получает не голую ссылку, а определенный набор информации, следовательно вы полностью контролируете этот процесс. То есть информация, которую опубликует принимающий блог вы формируете у себя.
У трэкбаков также есть минус: проблемы с кодировкой. Однако, в отличие от пингов, когда определение кодировки ложится на принимающую сторону, в трэкбаках кодировку указываете уже вы, то есть отправляющая сторона. Если вы внесете небольшое исправление в WordPress, то скорее всего проблем с кодировкой трэкбаков у вас не возникнет.