Равняйсь. Стройсь. Комменты — направо, пингбэки, трекбэки — налево 🙂
Не знаю как кому, а лично мне не нравится когда идут вперемешку комменты и пинг-/трекбэки. Почитывая блоги, заметил — что у некоторых они показываются отдельно. Ессно сразу же кинулся искать — как сделать себе такое полезное улучшение. Задумка вполне выполнима. Но делается, не то что бы легко и сразу, плагином например, но делается. Не буду писать что, где и когда — делал давно, уже не помню. Перейдем сразу к выполнению.
1. Комментарии
Обобщенная структура комментариев. Просто показываем комментарии. Без классов, без вставок.
| 1 2 3 4 5 6 7 8 9 10 11 | <?php if($comments) : ?> <ul> <?php foreach ($comments as $comment) : if (get_comment_type() == "comment") : ?> <li><?php comment_text() ?></li> <?php endif; endforeach; ?> </ul> |
2. Пингбэки и Трекбэки (pingback and trackback)
Это тот код который я нашел в процессе поиска.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <h4>Trackbacks</h4> <ol> <?php foreach ($comments as $comment) : ?> <?php $comment_type = get_comment_type(); ?> <?php if($comment_type != 'comment') { ?> <li><?php comment_author_link() ?></li> <?php } ?> <?php endforeach; ?> </ol> |
В принципе суть ясна. Есть комментарии, проверяем их тип — если тип коммента не коммент, значить пинг или трекбэк. Раз пингбэк — значить показываем. Все гениальное — просто. А вот хрен. Не пашет. Кароче опять таки причину и суть «неработы» не помню — давно было. Ну не важно — главное, что не пашет.
Давай опять копаться. Нашел на офф.сайте WP в Plugin Directory вот такой плагин — Trackping Separator
Поставил. Активировал. Все нормально. Хоть там и написано, что типа для версии 2.0.2, но у меня сейчас нормально работает и на версии 2.7.
Почитав FAQ по Trackping Separator
Внес нужные дополнения-изменения себе в comments.php. И чудо — все работает как надо.
Что к чему — ниже код с пояснениями
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | //Немного изменяем код отображения комментариев <?php if ( $comments ) : ?> <ul> <?php foreach ($comments as $comment) : ?> <?php if (get_comment_type() == "comment") { // Выбираем только комментарии ## SHOW ONLY COMMENTS ?> <li><?php comment_text() ?></li> //Показываем комментарии <?php } ## SHOW ONLY COMMENTS //Закрываем выборку только комментариев ?> <?php endforeach; /* end for each comment */ ?> </ul> <?php endif; ?> // А вот в этом блоке мы будем показывать пингбэки <?php if ($trackbacks = trackpings()) : ?> //Если есть trackback значить показываем <h3>Trackback / Pingbacks</h3> <ul> <ul><?php listtrackpings(); ?></ul> //Просто показываем их все да и всё. </ul> <?php endif; ?> |
Исходя из документации можно накрутить поболее.
%id — уникальный идентификатор трекбэка/пингбэка.
%url — URL ресурса отправившего трекбэк/пингбэк.
%origin — название статьи сайта отправителя.
%date — дата и время трекбэка/пингбэка.
%content — отрывок из статьи сайта отправителя трэкбека.
Вот такой код к примеру.
| 1 2 3 4 5 6 7 8 9 10 11 12 | <?php if ($trackbacks = trackpings()) : ?> <h3>Trackback / Pingbacks - <?php echo trackpings('count'); ?></h3> <ul> <?php listtrackpings('trackback', '<li id="trackback-%id"><span><a href="/%url" rel="nofollow" title="%origin">%origin</a></span><br /> (Trackback, %date)</li>'); ?> <?php listtrackpings('pingback', '<li id="trackback-%id"><span> <a href="/%url" rel="nofollow" title="%origin">%origin</a></span><br />(Pingback, %date)</li>'); ?> </ul> <?php endif; ?> |
Как работает можно наблюдать на этом блоге. В частности внизу этой страницы.
Ну вот собственно и все. Разделяй и радуйся (с) 🙂 Будут вопросы — пишите, подскажу, помогу.



2 Комментарии
[…] — Показываем trackback/pingbacks отдельно[…]
Трекбэк и пингбэк используются для рассылки спама и никакой пользы от них нет