Wordpress 2.7 ve yeni yorum alanını entegre etmek
Wordpress 2.7 ile birlikte gelen bir çok özellikten birisi de yorum alanı için yapılan geliştirmeler. Artık yorum alanında, yorumlar sizin istediğiniz sayıda sayfalara bölünebiliyor, otomatik olarak gravatar entegrasyonu yapılıyor ve yorumlarınıza numara veriliyor. Tüm bu geliştirmeler için ise wp_list_comments fonksiyonu kullanılıyor. Wordpress 2.7 ile gelen yeniliklerin bir listesine Teakolik’in yazdığı bu yazıdan ulaşabilirsiniz.
Wordpress 2.7 yorum alanı için yapılan geliştirmelerden en çok dikkat çekeni ise artık yorumların otomatik olarak sayfalara bölünebilmesi. Bu iş için eskiden eklenti kullanmak zorundaydık ancak artık Wordpress 2.7 yi kullanıyor olmamız yeterli. Admin paneli/Ayarlar/Tartışma bölümüne girdiğinizde:
Her sayfada xx yorum olacak şekilde ve xx sayfa gösterilecek şekilde yorumları sayfalara böl
şeklinde yeni bir ayar seçeneğinin geldiğini göreceksiniz. Buradan, yorumları kaçar kaçar ve kaç sayfaya böleceğinizi ayarlayabiliyorsunuz. Eminim hevesle bu ayarı yapıp yorumların sayfalara bölündüğünü görmek istediniz ancak sonuç alamadınız. Bunun için temanızın comments.php dosyasını Wordpress 2.7 ile uyumlu hale getirmeniz gerekiyor. Aksi taktirde yorum sayfalama, yorum numaralandırma gibi fonksiyonlardan mahrum kalıyorsunuz. Zira bazı fonksiyonların isimleri dahi değişmiş durumda.
Wordpress 2.7 mi kurulu?
İlk olarak comments.php dosyanızın başına bu kontrol bloğunu entegre etmeniz gerekiyor. Bu kod yeni fonksiyonumuz olan wp_list_comments fonksiyonunun var olup olmadığına bakıyor ve eğer yoksa (yani Wordpress 2.7 den eski bir versiyon kullanıyorsanız) eski fonksiyonların da sağlıklı bir şekilde çalışmasını sağlıyor. Fonksiyonun çalışabilmesi için eski Wordpress comments.php kodlarını else kısmına, yeninin kodlarını ise ana döngü içerisine yerleştirmeniz gerekiyor. Şunu da hatırlatmalıyım ki bu kod zorunlu bir kod değil. Eğer tema geliştiriyor ve temanızın eskiye de uyumlu olmasını istiyorsanız bu kısmı kullanın.
if (function_exists('wp_list_comments')) :
// new comments.php stuff
else :
// old comments.php stuff
endif;
Parola koruması
Bu bölüm eğer içeriğinize şifre vermişseniz, Wordpress’in bu durumu kontrol etmesine yarıyor. Esasında eski sürüm ile arasında çok büyük bir farklılık yok. Sadece cookieleri direkt kontrol ediyor. Bu kodu temanıza eklediğinizde, temanız artık ileriye doğru uyumlu olacak ve eski Wordpress sürümlerinde hata verecektir.
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
die ('Please do not load this page directly. Thanks!');
if ( post_password_required() ) {
echo 'This post is password protected. Enter the password to view comments.';
return;
}
Yorum döngü alanı (The Comments Loop)
En fazla kod değişikliği bu alanda yapılmış. Eski comments.php dosyanız basit olarak şu şekilde görünüyordu:
if ($comments) :
< ?php $comment_count = get_comment_count($post->ID); echo $comment_count['approved']; ?> Comments
<ul class="commentlist">
< ?php foreach( $comments as $comment ) :
// stuff to display the comment in an LI here
endforeach;
?></ul>
< ?php else :
if ('open' == $post->comment_status) :
// If comments are open, but there are no comments.
else :
// comments are closed
endif;
endif;
Ancak Wordpress 2.7 ile birlikte comments.php loop bölümü aşağıdaki şekli alıyor:
if ( have_comments() ) : ?>
<h4 id="comments">< ?php comments_number('No Comments', 'One Comment', '% Comments' );?></h4>
<ul class="commentlist">
< ?php wp_list_comments(); ?></ul>
<div class="navigation">
<div class="alignleft">< ?php previous_comments_link() ?></div>
<div class="alignright">< ?php next_comments_link() ?></div>
</div>
< ?php else : // this is displayed if there are no comments so far ?>
< ?php if ('open' == $post->comment_status) :
// If comments are open, but there are no comments.
else : // comments are closed
endif;
endif;
Yeni comments.php dosyası bu kadar az koddan meydana geliyor ancak dikkat edilmesi gereken üç önemli noktası var:
- have_comments() fonksiyonu $comments değişkeninin yerini alıyor. Eski temanızdaki $comments değişkeni kullanılan yerleri bu yeni fonksiyonlar değiştirmelisiniz.
- wp_list_comments() yorum bölümünün temel direği olan fonksiyon. Bütün yapılan yorumların çıktısını bu yeni fonksiyon veriyor.
- Bu yeni wp_list_comments() fonksiyonu, yorumları otomatik olarak sayfalara bölüyor. Yani başka bir değişle; yorum sayfalama işini de bu fonksiyon tek başına yapıyor.
En önemli yenilikler bunlar. Bunların dışında comment-reply scripti gibi önemli yenilikler de bulunuyor. Tabi bu scripti de temanıza entegre etmeniz gerekiyor. Daha detaylı bilgi için Otto‘nun yazdığı detaylı dökümanı inceleyebilirsiniz. Entegrasyonla ilgili problemleriniz için bu başlık altından tartışabiliriz.
Etiketler:entegre, Tema, uyum, Wordpres, Wordpress 2.7, Wordpress 2.7 paging, Wordpress 2.7 yorum sayfalama, wp_list_comments
Şu an tam N/A kişi yazıları RSS ile takip ediyor. 





2.7′ye güncellemesem mi, kararsız kaldım (:
Bence hemen güncelle. Temalarda ve eklentilerde geriye dönük hemen hemen hiç bir uyumsuzluk yok (:
Sanırım temayı uyumlu hale getirmem gereken kişilerdenim (: Yazı için teşekkürler..
Bu yazıyı yazan arkadaşla görüşmem lazım..
2.7 kullanıyorum fakat kullandığım temanın comments.php dosyasında bu yorum sayfalandırma kodları yok sanırım..
Eğer yazıyı yazan arkadaşın müsait bi zamanı olursa msn adresimi ekleyip bu sorunu çözmeme yardım ederse çok sevinirim..
Bu tamda benim aradığım bir yazıydı ama Php bilgimin az olması nedeniyle yapabileceğim gibi değil
Daha ayrıntılı anlatan bir kaynak varmı ? Yada ben size Comments.php dosyasını versem bi iyilik yapıp uyumlu hale getirebilirmisiniz ?