Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

WordPress’te Yorum ve Geri İzlemeleri Ayırmak

1 min read

WordPress günlüklerimizin yorum ve geri izleme özelliği vardır. Bu iki özellik de veritabanının yorumlar tablosunda (wp_comments) tutulurlar. Standart WordPress temalarında her ikisi de normal yorum gibi görüntülenir. Oysa ki birisi başka bir siteden bizim sitemize gelen bir bağlantı, diğeri ise bir okuyucumuzun yazımız hakkında yapmış olduğu yorumdur. Doğal olarak bu ikisini ayırmak gerekir. Gelin bunu nasıl yapabileceğimizi görelim.

İşin Mantığı

Kodları hap şeklinde vermek yerine önce ne yaptığımızı anlayalım. Mantık aslında oldukça basit. Konumuz olan tabloda (wp_comments) “comment_type” alanı vardır. Temamızın yorumlar kısmında (büyük ihtimalle comments.php dosyasındadır) yorum döngüsü içinde o an çekilen kaydın tipini alacağız ve geri izleme mi yoksa yorum mu kontrol edeceğiz. Sonrasında ise buna göre yorumu/geri izlemeyi görüntüleyeceğiz .

Ve Kodlar

Standart bir WordPress temasının yorum kısmındaki kodlar kabaca şu şekildedir. Kodları biraz temizledim. Sizin temanızdaki daha kalabalıktır ama mantığı anlayabilirsiniz.
[php]<?php if ($comments) : ?>

<?php foreach ($comments as $comment) : ?>


<?php endforeach; ?>

<?php else : ?>

<?php endif; ?>[/php]
Bu kodlar üzerinde sizin için hazırladığım resimdeki değişiklikleri yapmalısınız. Değişikliği yaparken aşağıdaki kodlardan faydalanabilirsiniz. Gerekli değişikliği yaptıktan sonra kodunuzun son hali kabaca şöyle olacaktır.

[php]<?php if ($comments) : ?>

<?php foreach ($comments as $comment) : ?>

<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == ‘comment’) { ?>


<?php } else { $trackback = true; } ?>

<?php endforeach; ?>

<?php if ($trackback == true) { ?>
<h3>Geri izlemeler</h3>
<ul>
<?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; ?>
</ul>
<?php } ?>

<?php else : ?>

<?php endif; ?>[/php]

Değişikliği Açıklayalım

Öncelikle ilk yorum döngümüzde eğer kayıt bir yorum ise
($comment_type == ‘comment’) göster anlamına gelen kodu yazdık. Eğer değilse $trackback isimli değişkene true değeri verdik. Bunun anlamı yorum dışında başka türlü kayıt olduğudur ki o da zaten geri izlemedir. Son olarak ikinci bir döngü oluşturduk ve bu döngüde sadece geri izlemeleri listeledik.

Sonuç

Kod anlatırken gerçekten çok zorlanıyorum çünkü karşımdaki kitlede hiç kod bilmeyen de var, biraz bilen de, uzman olan da. Ben kendime en az bileni kıstas olarak alıyorum ve o şekilde anlatmaya çalışıyorum. Bu yazımda değişiklikleri resim ile gösterdim. Umarım sizi çok fazla sıkmadan anlatabilmişimdir mevzuyu.

Yorumlarla gönlümü ferahlatmanız dileğiyle, hoşçakalın…

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer