06 Ağustos 2009

the_excerpt İçin Devamı Bağlantısı

WordPress Yorum Ekle

WordPress'te özellikle kategorilerin yazıları gösterilirken, yazının tamamı değil, özeti gösterilir. Bu özet işini göstermek için ise tema dosyası içerisinde the_excerpt() fonksiyonu kullanılır. Fonksiyon, eğer yazıya ait bir özet girilmişse onu, girilmemişse yazının ilk 55 kelimesini alıp gösterir, sonuna da [...] karakterlerini ekler. Yazının devamını okumak isteyen ziyaretçi ise yazı başlığına tıklamak zorunda kalır. Halbuki the_content() fonksiyonunda gösterilen özet kısmın sonunda devamı bağlantısı yer alıyordu.
Hem the_excerpt() fonksiyonunu kullanıp, hem de özetin sonuna [...] karakterleri yerine devamı bağlantısını eklemek istiyorsanız, aşağıdaki kodları temanızın Tema fonksiyonları (functions.php) dosyasına uygun şekilde eklemeniz yeter. Kod içerisinde geçen devamı ifadesini istediğiniz gibi değiştirebilir, isterseniz resim dahi ekleyebilirsiniz.

  1. <?php
  2. function replace_excerpt($content) {
  3.    return str_replace('[...]', ' <a href="'. get_permalink() .'">devamı &raquo;</a>', $content);
  4. }
  5. add_filter('the_excerpt', 'replace_excerpt');
  6. ?>

Böylece yazınızın sonuna devamı » şeklinde, yazının kendisine giden bir bağlantı eklenmiş olacak.
Kaynak


Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=963.

Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.


“the_excerpt İçin Devamı Bağlantısı” yazısı için 2 Yorum

Bu yazıya yapılan yorumları dilerseniz, ( RSS 2.0 ) beslemesini kullanarak takibe alabilirsiniz.

  1. sser dedi ki:

    Bi konuda daha faydalandık teşekkürler yakupgovler.com

  2. CooLXviD dedi ki:

    Hocam Teşekkürler...

    Benimde ne zamandır aklımdaydı bu 55 kelime sınırını düşürmek belki ilgilenen arkadaşlar olabilir..

    wp_includes klasörü altında formatting.php $excerpt_length = 55; burayı bulup isteiğimiz kelime sayısını ayarlayabilirz..Bana 40 kelime yeterli....

    1. function wp_trim_excerpt($text) { // Fakes an excerpt if needed
    2.     if ( '' == $text ) {
    3.         $text = get_the_content('');
    4.         $text = strip_shortcodes( $text );
    5.         $text = apply_filters('the_content', $text);
    6.         $text = str_replace(']]&gt;', ']]&gt;', $text);
    7.         $text = strip_tags($text);
    8.         $excerpt_length = 40;
    9.         $words = explode(' ', $text, $excerpt_length + 1);
    10.         if (count($words) &gt; $excerpt_length) {
    11.             array_pop($words);
    12.             array_push($words, '[...]');
    13.             $text = implode(' ', $words);