WordPress için Eklentisiz Son Yorumlar

Wordpress için Eklentisiz Son Yorumlar

WordPress scriptli sitenizde yazılara gelen son yorumları 5, 10, 15’li şekilde ancak eklenti kullanmadan bileşenler menüsünde yani sidebar’da göstermek ister misiniz? Cevabınız evet ise, düzgün çalışan ve her yerde bulamayacağınız bir kod ile karşınızdayım. 

Yukarıda belirttiğim gibi her yerde bulamayacağınız bir kod paylaşıyorum sizlerle. Çünkü eklenti kullanmadan son yorumları göstermek biraz zahmetli.

Nasıl zahmetli? Örneğin bulduğunuz kodlarla Türkçe karakter sorunu yaşayabiliyorsunuz, WordPress hata ayıklama aktif ise kullandığınız kodların hatalı olduğunu, siteyi yavaşlattığını fark ediyorsunuz veya hiç fark etmeden sorunlu kodları kullanıyorsunuz.

Veya hiç olmadı kullandığınız kodlar “onaylanmamış” yorumları da bileşenlerde gösteriyor ve bu sayede onay almayan spam yorumlar, bağlantılar sitenizde görünme şansı yakalıyorlar.

Bu kod işte öyle değil.

Aşağıdaki kodları sidebar.php‘de görünmesini istediğiniz yeri ayarlayıp, ul etiketleri arasına yada li etiketleri arasına yerleştirin. Sonrasında style.css dosyanızdan sidebar ul, li etiketlerini düzenleyerek görsel olarak son yorumları şekillendirebilirsiniz.

<?php
$comments = get_comments(array(
 'status' => 'approve',
 'number' => '5' //Number of comments
));
 foreach($comments as $comm) :
 $url = '<a href="'. get_permalink($comm->comment_post_ID).'#comment-'.$comm->comment_ID .'" title="'.$comm->comment_author .' | '.get_the_title($comm->comment_post_ID).'">' . $comm->comment_author . '</a>';
?>
<li>
<p><strong><?php echo $url; ?></strong>
<?php print truncate( $comm->comment_content, 90 ); ?></p>
</li>
<?php
 endforeach;
?>

Yukarıdaki kodda 5 rakamını 10 yaparsanız, 15 yaparsanız doğal olarak son 10, 15 yorum görüntülenecek.

Yorum içeriğinin belirlediğimiz kadarının görünmesi ve kesme işlemi sırasında Türkçe karakter sorunu olmaması içinde, aşağıdaki kodu functions.php‘de uygun yere ekleyin;

function truncate($string, $chars = 50, $terminator = '…') {
 $cutPos = $chars - mb_strlen($terminator);
 $boundaryPos = mb_strrpos(mb_substr($string, 0, mb_strpos($string, ' ', $cutPos)), ' ');
 return mb_substr($string, 0, $boundaryPos === false ? $cutPos : $boundaryPos) . $terminator;
}

Hepsi bu. Eğer bir sorun yaşarsanız functions.php‘de kodları doğru şekilde ekleyip eklemediğinizi kontrol edin.  Sorularınız, eklemek istedikleriniz olursa yorum bölümünden yazabilirsiniz.