WordPress 2.7 Tema için Değişiklikler, Yorumların Düzenlenmesi


Yazı dizisinin bu sefer ki durağı WordPress 2.7 üzerinde yorumlar (comments) kısmının düzenlenmesi ve WordPress 2.7’e uygun hale getirilmesinin anlatımı olacak. WordPress 2.7 bloglama hayatımıza bir sürü görsel ve altyapısal zenginlik getirdi. Biz de bunu WordPress 2.7 Tema ve Yönetim Paneli Yenilikleri altında incelemeye alıyoruz. Bu zenginliklerin ya da değişikliklerin en yoğun olduğu yer yeni yorum fonksiyonlarının eklenmesiyle comments.php dosyasında yaşanıyor. Katmanlı (threaded) ve sayfalanmış (paged) yorumlar. Blogunuzu WordPress 2.7’e yükselttikten sonra temanız normal bir şekilde çalışmaya devam edebilir. Ancak WordPress 2.7  ile ilgili gelen yeniliklere sahip olmak istiyorsanız öncelikle temanızı bu yönde değiştirmeniz gerekmektedir. Comments.php dosyasını düzenlemeye başlayalım.

Şifre Koruma Denetlemesi

Daha önceki wordpress sürümlerinde kullanılan bu kod içerisinde çok küçük değişiklikler olmuş. Bu değişiklik ileride olabilecek yükseltmelere uyumlu olması açısından önem taşıyor. Aşağıdaki kodu comments.php dosyasının en üstüne yerleştiriyoruz.

[code=’php’]
< ?php // Do not delete these lines 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;
}

?>
[/code]

Yeni Yorum Döngüsü (comment loop)

WordPress 2.7 ile birlikte hayata geçen yeni bir fonksiyon ile yorum döngüsündeki karmaşada son bulmuş oluyor. wp_list_comments() fonksiyonu ve beraberinde getirdiği argümanları ile bu kısmı oldukça kolay bir hale getiriyor. Kanımca ileride tema geliştiricilerin işini epeyce kolaylaştıracak. Önce codexte belirtildiği gibi buradaki kodun eskiden nasıl olduğuna bakalım.Böylelikle aradaki farkı daha iyi gözlemleyebiliriz.

[code=’php’]
if ($comments) :
< ?php $comment_count = get_comment_count($post->ID); echo $comment_count[‘approved’]; ?> Comments

    < ?php foreach( $comments as $comment ) : // stuff to display the comment in an LI here endforeach; ?>

< ?php else : if ('open' == $post->comment_status) :
// If comments are open, but there are no comments.
else :
// comments are closed
endif;
endif;
[/code]

Şimdi WordPress 2.7 yorum döngüsünde kullanacağımız kodun basit haline göz atalım. Yukarıdaki karmaşadan eser yok. Çok daha anlaşılır. Aşağıdaki kısım Murekkep üzerinde kullandığımız comments.php dosyasından geri izlemeler (trackbacks) kısmı çıkartılarak alınmıştır. Burada tüm yükü  yukarıda bahsettiğimiz gibi wp_list_comments() fonksiyonu çekiyor. Siz kendi argümanlarınızı ya da basit halini (avatar ve type=comment vs.. çıkararak) yerleştirerek kullanabilirsiniz. Tüm katmanlı (threaded) yorumlar bu fonksiyon üzerinden üretiliyor.Yeni olarak çok fazla olan yorumlarda “yorum sayfalama” diyebileceğimiz navigasyon eklemesi var. Sayfalama için yorum sayı limitini yönetici panelindeki ayarlar – tartışma kısmından değiştirebiliyorsunuz.

[code=’php’]
< ?php if ( have_comments() ) : ?>

Yazı Hakkında Yapılmış Yorumlar

< ?php comments_number('Henüz yorum yapılmamış', 'Bir yorum yapılmış', '% yorum yapılmış' );?> | “< ?php the_title(); ?>”

    < ?php wp_list_comments('type=comment&avatar_size=32'); ?>

< ?php else : // this is displayed if there are no comments so far ?>

< ?php if ('open' == $post->comment_status) : ?>

< ?php else : // comments are closed ?>

Bu yazı için yorumlar kapanmıştır.

< ?php endif; ?>
< ?php endif; ?>
[/code]

Javascript Yorum Fonksiyonu

Temanızı WordPress 2.7 ile gelen özelliklere adapte etmeniz ve yukarıda belirttiğimiz katmanlı yorum özelliklerinin gelmesi için javascript fonksiyonunun ilgili yere eklenmesi gerekmektedir. Bunun için header.php dosyasını açıyoruz ve wp_head() satırını buluyoruz. Hemen üstüne aşağıdaki kodu ekliyoruz.

[code=’php’]
< ?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
[/code]

Bu kod ile beraber yorumlarda cevapla linkinin doğru bir şekilde çalışmasını sağlıyoruz. Ama bu tek başına yeterli olmayacağından scriptin doğru çalışması için comments.php dosyası içerisinde yorum formu kısmına aşağıdaki kodu eklememiz gerekiyor.

[code=’php’]
< ?php comment_id_fields(); ?>
[/code]
Aşağıda örnek olması açısından yorum formu kodunun bittiği yere yani yorumunuzu gönderin (submit) ifadesinin sonlandığı yerin hemen altına ekliyoruz.

[code=’php’]


< ?php comment_id_fields(); ?>
[/code]

Yukarıda bahsettiğimiz javascriptin doğru çalışması ve cevapla linkinin geçerli olması için tüm yorum metin yazma alanının bir div ile çerçevelenmesi gerekiyor. Böylelikle ihtiyacı olan yerlere doğru bir şekilde bakıp doğru kaynaklara ulaşmasını sağlıyoruz. Bazı eski temalarda ve varsayılanlar dahil bu kısım div etiketi olmadan yer alabiliyordu.
[code=’html’]

[/code]
Şimdi bunu artık bir DIV etiketi ile çerçeveliyoruz. Ve “Yorumunuzu buradan bırakabilirsiniz” kısmı için aşağıdaki yorum başlığı kodunu kullanıyoruz.

[code=’php’]
< ?php comment_form_title(); ?>
[/code]

Son olarak aynı DIV çerçevesi içerisinde cevapla linkine tıklandığında bu cevaplamayı iptal etmek için gereken parametreleri ekliyoruz.

[code=’php’]

< ?php cancel_comment_reply_link() ?>

[/code]

Tüm bunları büyük resimde görmemiz gerekirse aşağıdaki gibi tablo oluşacaktır.

[code=’php’]

< ?php comment_form_title( 'Buradan yorumunuzu bırakabilirsiniz', 'Yorumunuzu bırakın %s' ); ?>

< ?php cancel_comment_reply_link(); ?>

[/code]

Dikkat ettiyseniz en baştaki div için etiketi kapatmadık. Bunun kapandığı kısım comments.php içerisinde en altta comment id fileds kısmından sonra form etiketini kapattıktan sonra olacaktır.

[code=’php’]


< ?php comment_id_fields(); ?>

< ?php do_action('comment_form', $post->ID); ?>

[/code]

Böyle parça parça hangi elementlerin nerelere geldiğini aktarmaya çalıştım. comments.php dosyası için büyük resme bakabilmeniz ve yorumlayabilmeniz açısından Murekkep.Org üzerinde kullandığımız comments.php dosyasına buradan bakabilirsiniz. En azından yukarıda bahsetmek istediklerimizin tam olarak nereye nasıl entegre olduklanını görmeniz açısından faydalı olacaktır.

Tüm bu işlemleri yaptıktan sonra esas yapılması gereken ve yapmazsanız katmanlı yorumları aktif etmemiş olacağınız kısmı anlatalım. WordPress yönetim panelinizden aşağıdaki gibi ayarlar – tartışma kısmından “katmanlı yorumlara izin ver” çentik koyarak aktif etmeniz gerekmektedir.

Evet katmanlı (threaded) yorumları ve yorum dosyasını wordpress 2.7 için düzenlemek ilk etapta bu işlemleri gerektiriyor. Geçen hafta içerisinde yaptığımız değişiklikler aşamasında faydalandığımız kaynaklar aşağıdaki gibidir. Yeni katmanlı yorumların css düzenlemesi için özellikle son link olan Stylizing Threaded/Nested Comments in WordPress 2.7‘e bakmanızı öneririz.

Umarım anlatımda eksikliklerimiz ya da aktarırken atladığımız unsurlar yoktur. Eğer varsa düzeltmek için görüşlerinizi bekliyoruz. WordPress 2.7’de yorumlar kısmını temanızda düzenlerken bir sorunla karşılaşmanız durumunda ya da bu yazıya ekleme yapmak isterseniz yorumlarınızı her zaman bekliyoruz.


Feedback

  Comments: 8


  1. tsk ederim bilgi için


  2. Hocam http://www.blogohblog.com/wordpress-theme-silver-light/ Şu adresteki temayı kullanmaktayım ama bir türlü 2.7 uyumlu getiremedim Yorum sayfasını. Yardımcı olabilirmisiniz.


  3. güzel yazıydı.. teşekkürler.


  4. Bu yazı yazıldığında kimse 2.7 sürüme terfi etmemişti ve mevcut temanın comments.php kısmını adapte etmek açısından faydalıydı. Şimdi ise direkt 2.7 destekli olan bir sürü tema var. Örnek olması açısından sade bir tema olan plainscape temasına bakmanızı tavsiye ederim. Hem büyük resmi görebilirsiniz hem de birebir comments.php dosyasını kullanabilirsiniz.


  5. Teşekkürler çok iyi detaylı bir anlatım fakat bir türlü uygulayamadım kullandığım temanın comment.php dosyası biraz farklı örnek ile karşılaştırma yapamadım http://pastebin.com/m5700a03d


  6. thanks good


  7. paylasım ıcın tesekkurler….

Your feedback