Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

WordPress the_excerpt() Fonksiyonu

1 min read



WordPress tema fonksiyonlarından birisi de the_excerpt() fonksiyonudur. Bu fonksiyonu kısaca şöyle özetleyeyim. Diyelim ki anasayfada yazılarınızın özetini göstermek istiyorsunuz. Bunun için genelde farklı parametrelerle the_content() fonksiyonu kullanılır. Eğer yazınızı <!–more–> etiketi ile bölmüşseniz bu etikete kadar olan kısım anasayfada görüntülenir. Fakat bazen <!–more–> etiketini kullanmak istemeyiz. Sadece yazının belirli bir kelime kadar olan kısmı anasayfada özet şeklinde görünsün isteriz. Çünkü more etiketini yazının neresine koyacağımızı kestirmek zor olabiliyor. Yanlış bir yere koyarsak tasarımı bozma ihtimali doğuyor. İşte böyle durumlarda yazının belli bir kelimeye kadar olan kısmının anasayfada özet şeklinde görünmesi için the_excerpt() fonksiyonu daha kullanışlı olacaktır.

the_excerpt() Kullanımı

Bu fonksiyonun tek bir kullanımı vardır ki o da şu şekildedir (55 kelime olduğunu varsayın):

[php]
<!–?php the_excerpt(); ?–>
[/php]

Yukarıdaki fonksiyon yazınızın ilk 55 kelimesini alır, sonuna […] ekler ve görüntüler. Örnek bir çıktı şu şekildedir.

Büyüklük odur ki kimseye iltifat etmeyeceksin, hiç kimseyi aldatmayacaksın. Memleket için gerçek ülkü ne ise onu görecek ve o hedefe yürüyeceksin. Herkes senin aleyhinde bulunacaktır, seni yoldan çevirmeye[…]

Eğer kelime sayısını (55 değil de 45 mesela) değiştirmek veya en sondaki […] yerine farklı bir şeyler yazdırmak isterseniz yapmanız gereken wp-includes/formatting.php dosyasını açıp WordPress 2.7.1’de 1482’nci satırda olan şu fonksiyonu bulmak.

[php]function wp_trim_excerpt($text) {
if ( ” == $text ) {
$text = get_the_content(”);

$text = strip_shortcodes( $text );

$text = apply_filters(‘the_content’, $text);
$text = str_replace(‘]]>’, ‘]]>’, $text);
$text = strip_tags($text);
$excerpt_length = apply_filters(‘excerpt_length’, 55);
$words = explode(‘ ‘, $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, ‘[…]’);
$text = implode(‘ ‘, $words);
}
}
return $text;
}[/php]

Buradaki 55 sayısı yerine dilediğiniz rakamı ve […] yerine de dilediğiniz karakterleri yazıp kaydederseniz artık yazılarınızın özeti dilediğiniz gibi görünecektir.

Not: Bu işlemleri yapmak yerine Custom Excerpts eklentisini de kullanabilirsiniz.

Biraz zor anlattım bu konuyu çünkü kimin olabildiğince herkese hitap etmek isterken daha basite indirgeyemiyorum konuyu. Umarım anlatabilmişimdir. Güle güle faydalanın.



Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer