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.
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 .
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 if ($comments) : ?> <?php foreach ($comments as $comment) : ?> ... ... <?php endforeach; ?> <?php else : ?> <?php endif; ?>
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 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; ?>
Ö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.
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…
Genç yaşlarda programlama ile tanıştı ve Delphi ile başladığı programlama macerasına şuanda PHP, SQL, Javascript, AJAX, CSS, XHTML teknolojileri ile devam etmektedir. Elektrik - Elektronik bölümü mezunu olan "yakuter" 2006 yılından itibaren yakuter.com'un yazarlığını yapmaya başlamıştır.
emrah üstün
05 Eylül 2008
Erhan, türkçeye özen gösteren sayılı kişilerdeniz.
SEO’yu düşürdüğü halde başlıkta ‘Geri İzleme’ dediğin için tebrik ve teşekkür.
yakuter
05 Eylül 2008
Teşekkür ederim Emrah. Bu konuda hep dikkat etmeye çalıştığımı biliyorsun. Geri izleme, betik, anaçatı (framework), eklenti, günlük… İnşallah dahası da gelecek ;)
NeTHaLiL
05 Eylül 2008
Güzel bir yazı olmuş bende blogumda bu şekilde kullanıyorum daha düzenli oluyor..
Kemal Gürler
06 Eylül 2008
Parse error: syntax error, unexpected ‘}’ in …/wp-content/themes/structure/comments.php on line 77
hatası verdi bende ama , sağolun yine de..
yakuter
06 Eylül 2008
Süslü parantezi kapatmayı unutmuşsun. Daha dikkatli bir şekilde uygularsan sorunun çözüleceğini düşünüyorum.
MiM
08 Eylül 2008
Teşekkür ederim. Bizim için hazırladığın resim birazda bizim kodlarla haşır neşir olmamız içinmiydi acaba? Açıkcası hoşuma gitti.
Son Günlerde - Seri 6 - Günlük Haftalık Aylık
11 Eylül 2008
[...] WordPress’te Yorum ve Geri İzlemeleri Ayırmak. # [...]
bilginyoksa
13 Eylül 2008
gerçekten güzel bir yazı olmuş bende wordpress’in sürümünü güncelledikten sonra ayırmayı düşünüyorum sağolasın
UB
13 Eylül 2008
Teşekkürler yakuter. Tam da yorum kısmını yenileyecektim temamın… Google aramalarından kurtardın beni. :)
ozanTi
19 Eylül 2008
sağol Erhan abi,ama ben daha önce bunu deneyip becerememiştim :) bir daha deneyeceğim sağol tekrar
yakup
25 Eylül 2008
“Kodları hap şeklinde vermek yerine önce ne yaptığımızı anlayalım. Mantık aslında oldukça basit.” ne güzel demişsin Erhan abi :-) Çok güldüm valla.
Hayalmeyal
10 Kasım 2008
Çok sağol, sitemde uyguladım, ama sormak istediğim birşey var, yorumların başlığında geri izlemeleri de yorum olarak sayıyor, geri izlemeleri ayrı saydırmak için hangi kodu eklememiz lazım ?
Örenek:
Bu yazı için 2 yorum 3 geri izleme..
Yazılan yazılardan ilk siz haberdar olun, yeni yazılar e-postanıza gönderilsin.
menchek
02 Eylül 2010
yakuter.com © 2006-2010 Erhan Yakut. Site tasarım Cenk Akyıldız - (Tema Bilgisi). Hosting sponsoru WebGrup.
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.