Мар
17
16

Отделяем трекбеки от комментариев в wordpress

В wordpress существует 2 типа записей комментариев – сообщения, оставленные пользователями, и так называемые трекбэки (пингбэки). Последние появляются в блоге, когда какой-то другой блоггер ставит в своем посте ссылку на вашу статью. Как правило, в шаблонах разработчики совмещают эти два понятия, что приводит к небольшой путанице и неразберихе. Иногда при этом теряется нить обсуждения. Поэтому в данном посте я расскажу про то, как отделить трекбэки и пингбэки от самих комментариев.

Для начала небольшой наглядный пример: слева у нас список комментариев вместе с трекбеками, а справа разделенный. Он, как и большая поста статьи взят с оригинальной англоязычной статьи Separating Trackbacks And PingBacks From Comments In WordPress.

трекбеки комментарии wordpress

Зачем нужно разделение? Некоторые статьи в блоге могут собирать достаточно большое число трэкбеков, отодвигая при этом нормальные комментарии далеко вниз. Кроме того, как я уже сказал выше, такие ссылки могут разбавлять записи пользователей, и в результате читать всю дискуссию будет не очень удобно. В свете данных мыслей вариант справа мне кажется очень органичным и замечательным.

В принципе, следует заметить, что трэкбеки в комментариях можно вообще отключить. Некоторые делают это из-за боязни спама в своем блоге, либо просто не видят необходимости в таких сообщениях. Хотя изначально смысл данного функционала был весьма позитивным – если блоггер ставил ссылку на другого автора, то она автоматически ставилась и на его проект. Но сегодня мы отключать трэкбеки полностью не будем, лишь уберем их из общего списка комментариев.

Итак, в общем код вывода записей комментариев выглядит так:

<?php if ($comments) : ?>
	<ol>
	<?php foreach ($comments as $comment) : ?>
		<li id="comment-<?php comment_ID() ?>" class='commentItem'>
			<!-- THE COMMENT LAYOUT -->
		</li>
	<?php endforeach; /* end for each comment */ ?>
	</ol>
<?php endif; ?>

Он отображает все типы записей в одном месте. Для разделения будем использовать функцию get_comment_type, которая возвращает соответствующие типы комментариев comment, trackback и pingback.

Таким образом, чтобы вывести список комментариев от пользователей, используем код:

<?php if ($comments) : ?>
	<ol>
	<?php foreach ($comments as $comment) : ?>
		<?php
		$commentType = get_comment_type();
		if($commentType == 'comment') :
		?>
			<li id="comment-<?php comment_ID() ?>" class='commentItem'>
				<!-- THE COMMENT LAYOUT -->
			</li>
		<?php endif;/* end if comment check */ ?>
	<?php endforeach; /* end for each comment */ ?>
	</ol>
<?php endif; ?>

Следующим шагом нужно скопировать его в нужно место шаблона (можно даже под форму комментариев), где предварительно заменить условие if($commentType == ‘comment’) на if($commentType != ‘comment’). Оно является противоположным для знака равенства и получается выбирает все записи, которые не есть комментарияим.

<?php if ($comments) : ?>
	<ol>
	<?php foreach ($comments as $comment) : ?>
		<?php
		$commentType = get_comment_type();
		if($commentType != 'comment') :
		?>
			<li id="comment-<?php comment_ID() ?>" class='trackbackItem'>
				<!-- THE PINGS LAYOUT -->
			</li>
		<?php endif;/* end if NOT comment check */ ?>
	<?php endforeach; /* end for each comment */ ?>
	</ol>
<?php endif; ?>

Второй шаг, который можно выполнить – задать отображение для трэкбеков. Для этого используем всего одну функцию comment_author_link(), которая эти записи будет отображать.

<li id="comment-<?php comment_ID() ?>" class='trackbackItem'>
	<?php comment_author_link(); ?>
</li>

Внимание! Примеры кодов для вывода комментариев специально упрощены, чтобы была понятна суть изменений. Конечно, вы должны будете добавить код, который отвечает за скрытие комментариев, ожидающих модерацию или там, где они отключены.

Я предпочитаю ставить ответные ссылки в постах где-тол, а не в трекбеках – так для автора и меня полезнее. Хорошо дл яэтого подходят подборки интересно почитать, где можно выбрать самый полезны пост, ссылающегося автора.

P.S. Постовой. Посетив блог о подарках, вы получите кучу положительных эмоций и позитива.
Качественное изготовление табличек на дома в Киеве.
Сharming russian woman wants to meet nice men.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 2, средний балл: 7,00 из 7)
Загрузка...

категория Категории: Хаки и секреты;
теги Теги: , , , .

комментариев 16 к статье “Отделяем трекбеки от комментариев в wordpress”

  • Очередной Манимейкер   18.03.2010

    Хм, я раньше трекбеки вычищал ручками. Попробую реализовать описанную схему, спасибо

  • Grinya   18.03.2010

    Хм, полезно надо у себя такое попробывать провернуть

  • style-nes   18.03.2010

    И почему разработчики решили совместить?!
    Ведь как сделали вы намного удобнее.

  • Игромен   19.03.2010

    Мысль разделить пинги и коменты в принципе рациональна.. Но я вот раньше об этом не задумывался.. И понимаю почему, потому что не встречал пока такой ситуации, чтоб они друг другу мешали.
    Но с теоретической точки зрения , я полностью согласен.. Это нужное дело. Просто по причине того, что вроде и так нормально, руки не доходят до исправления…

  • Дмитрий   20.03.2010

    И я задаю такой же вопрос, зачем совмещать. И вообще разработчик должен учитывать, что для различного ресурса может быть и так и так работать. Как в примере 1 и в примере 2.

    Но это вопрос не сюда, а к разработчикам

  • 2web   20.03.2010

    Полезная статья. Попробую у себя такой хак.

    А где у вас можно поставить трэкбэк?

  • Странник   20.03.2010

    Как жаль что разработчики вордпресса не учли всех запросов блогеров и так много нужно доделывать. Ведь кто то не обладает нужными навыками, а очень хочет что то реализовать

  • Kirik   21.03.2010

    хм, а для чего они вообще нужны кроме как поставить ссылку у себя в блоге?

  • АлаичЪ   22.03.2010

    А по моему это уже не смешно в стопицотый раз писать про это. К тому же это для старых варсий, до 2.7.

  • miF   23.03.2010

    Согласен с тем, что новые версии такого не потдержат так сказать )))
    Функционально — безспорно! Вопрос: Насколько полезно? )))

  • Tod   24.03.2010

    АлаичЪ, а в новых версия что используется? Там же и трекбэки и комментарии есть, там разве по другому отделяется?

  • Twin   26.03.2010

    Реализовать то легко. А вот счетчики то считают количество комментариев вместе с трекбеками. Остается только проблема в подсчетах именно комментариев и виджет поправить, чтобы отображал только комментарии (хотя это по желанию всё). Спасибо за статью.

  • Nabster   28.03.2010

    Спасибо большое за пост, я уже пол инета облазил в поисках этой реализации. Все подробно описано, получилось с первого раза. Еще раз спасибо. )

  • 893erg   30.03.2010

    Спасибо за статью! когда мое первое ВП творение подзахломится обязательно попробую ваш способ )

  • Лиана   20.03.2014

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

  • Tod   21.03.2014

    Лиана, большинство их отключает, т.к. действительно польза от них минимальная. Раньше просто это было как уведомление о том, что кто-то отставил ссылку на другой блог, блогосфера более активно ставила ссылки друг на друга.

Оставить комментарий


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Последние посты
Полезные заметки
Лучшее в категории
Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости