WP’de yorumlarla geri izlemeleri ayırmak

WP’de yorumlarla geri izlemeleri ayırmak

WordPress’in standart yorum sisteminin belki de en büyük sıkıntısı, geri izlemelerle (trackback) ziyaretçi yorumlarını alt alta sıralamasıdır. Çünkü geri izlemeler için, yorumlarda uyulmasını beklediğimiz standartların çoğunu es geçebiliriz. Hatta bazen geri izlemelerin sayfalarımızda yer almamasını da isteyebiliriz. Özellikle pek çok sitede referans gösterilen ve çok sayıda yorum alan yazılarda, geri izlemelerle yorumların bir araya karışması, kullanışlılığı oldukça azaltır. Belki de bu yüzden yüksek takip edilme oranına sahip pek çok site, geri izlemeleri listelerken, normal yorumlara benzemeyen bir tasarım kullanır:

Yorumlarla geri izlemeleri ayırmak

Sade ve anlaşılır. Tam geri izlemeden beklediğimiz gibi…

Peki WordPress’te yorumlarla geri izlemeleri nasıl ayırabiliriz?

Öncelikle WordPress’te kullanılan yorum listeleme kod bölümünü bulmalıyız. Hemen hemen tüm temalarda aşağıdakine benzer şekilde yer alır:

<?php if($comments) : ?><ol><?php foreach($comments as $comment) : ?><li id=”comment-<?php comment_ID(); ?>”><?php if ($comment->comment_approved == “0”) : ?><p>Your comment is awaiting approval</p><?php endif; ?>
<?php comment_text(); ?>

<cite><?php comment_type(); ?> by <?php comment_author_link(); ?> on <?php comment_date(); ?> at <?php comment_time(); ?></cite>

</li>

<?php endforeach; ?>

</ol>

<?php else : ?>

<p>No comments yet</p>

<?php endif; ?>

Bundan sonra, get_comment_type(); fonksiyonunu kullanarak yorumun hangi tipte olduğunu öğreneceğiz. 3 ihtimal var: pingback, trackback (geri izleme) veya comment (yorum).

Eğer sadece yorumları listelemek istiyorsak, kodu şöyle değiştirebiliriz:

<?php if($comments) : ?><ol><?php foreach($comments as $comment) : ?> <?php if(get_comment_type() == “comment”) : ?><li id=”comment-<?php comment_ID(); ?>”><?php if ($comment->comment_approved == “0″) : ?>
<p>Your comment is awaiting approval</p>
<?php endif; ?>

<?php comment_text(); ?>

<cite><?php comment_type(); ?> by <?php comment_author_link(); ?> on <?php comment_date(); ?> at <?php comment_time(); ?></cite>

</li>

<?php endif; ?>

<?php endforeach; ?>

</ol>

<?php else : ?>

<p>No comments yet</p>

<?php endif; ?>

Eğer pingback ve geri izlemeler için farklı bir tasarım kullanmak istiyorsak, şuna benzer bir kod kullanabiliriz:

<?php if($comments) : ?><ol><?php foreach($comments as $comment) : ?> <?php if((get_comment_type() == “pingback”) || (get_comment_type() == “trackback”)) : ?>
<li id=”comment-<?php comment_ID(); ?>”>
<?php comment_author_link() ?></li>

</li>

<?php endif; ?>

<?php endforeach; ?>

</ol>

<?php endif; ?>

Hepsi bu kadar. Biraz oynama ile istediğiniz sonuçları elde edebilirsiniz.

Bu yazı WordPress: how to separate comments and trackbacks yazısından tercüme edilmiştir.

İbrahim

Hekim. Yazar, beğenirse çevirir, kod yazarak eğlenir. 2002'den beri internette yazıyor.

Sevebilirsin...