Поиск

Показываем trackback/pingbacks отдельно

Показываем trackback/pingbacks отдельно
Равняйсь. Стройсь. Комменты — направо, пингбэки, трекбэки — налево :)

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

1. Комментарии

Обобщенная структура комментариев. Просто показываем комментарии. Без классов, без вставок.

<?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)

Это тот код который я нашел в процессе поиска.

<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. И чудо — все работает как надо.
Что к чему — ниже код с пояснениями

//Немного изменяем код отображения комментариев
<?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 — отрывок из статьи сайта отправителя трэкбека.

Вот такой код к примеру.

<?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; ?>

Как работает можно наблюдать на этом блоге. В частности внизу этой страницы.

Ну вот собственно и все. Разделяй и радуйся (с) :) Будут вопросы — пишите, подскажу, помогу.

Trackback / Pingbacks - 1
Оставить комментарий