Wordpress 2.7 ve yeni yorum alanını entegre etmek

Aralık 12, 2008 tarihinde Hakan Yamanoğlu tarafından yazıldı

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.

Wordpress 2.7′yi canlı canlı deneyin

Ekim 4, 2008 tarihinde Hakan Yamanoğlu tarafından yazıldı

Wordpress 2.7‘nin hazırlıkları son sürat devam ediyor ve eğer erteleme olmazsa 10 Kasım 2008 tarihinde resmen yayınlanmış olacak. Wordpress 2.7 ile birlikte bir takım köklü değişiklikler olacağı biliniyor. Yeni sürümde ne gibi yenilikler olacağıyla ilgili olarak Fatih Turan’ın bizlerle paylaştığı yazısını okuyabilirsiniz.

Wordpress 2.7 şu an beta aşamasında ve her gün bir takım iyileştirmeler yapılarak yeni beta sürümleri yayınlanmaya devam ediyor. Ben de bir süredir 2.7 sürümünü test ediyorum. beta.teknolojiherseyim.com adresine girerek Wordpress 2.7′nin en son halini siz de test edebilirsiniz. Admin paneline giriş yapabilmek için:

Kullanıcı Adı: beta

Şifre: hakan

Şu an için admin panelinde bir takım kaymalar var. Bunlar stabil sürümle birlikte düzelecektir. Ayrıca Wordpress-tr‘ın yayınladığı ve Wordpress 2.6.2 ile uyumlu olan Türkçe dil dosyasını, 2.7′ye yüklediğim için bazı yerlerin tam olarak Türkçe çıktı vermediğini görmeniz mümkündür (:

Bu arada, Wordpress 2.7 ile birlikte gelecek olan Quick Edit ve Sticky Posts özelliklerini çok beğendiğimi söyleyebilirim (:

Wordpress 2.7 ile ilgili görüşlerinizi bu başlık altından paylaşabilirsiniz.