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.
Teşekkürler…
01.function wp_trim_excerpt($text) {
02. if ( ” == $text ) {
03. $text = get_the_content(”);
04.
05. $text = strip_shortcodes( $text );
06.
07. $text = apply_filters(‘the_content’, $text);
08. $text = str_replace(‘]]>’, ‘]]>’, $text);
09. $text = strip_tags($text);
10. $excerpt_length = apply_filters(‘excerpt_length’, $s);
11. $words = explode(‘ ‘, $text, $excerpt_length + 1);
12. if (count($words) > $excerpt_length) {
13. array_pop($words);
14. array_push($words, $ay);
15. $text = implode(‘ ‘, $words);
16. }
17. }
18. return $text;
19.}
kullan : wp_trim_excerpt(“hebebebebe”,5,”[—]”);
:)
Sana daha güzel bir kod söyleyeyim mi Erhan abi? :) the_content_rss var: http://codex.wordpress.org/Template_Tags/the_content_rss
Benim kullanımım şu şekilde:
the_content_rss('', FALSE, '', 40);Arşiv sayfalarında, arama sonuçlarında vs. bu kodu kullanıyorum ve 40’ar kelime gösteriyorum.
Meğer herkesin bir çözümü varmış da benim haberim yokmuş :)
Teşekkürler arkadaşlar değerli katkılarınız için.
@Emre Yılmaz, verdiğin fonksiyon ismi değiştirildikten sonra (çakışmaması için) temanın functions.php dosyasına kaydedilip oldukça kolay bir şekilde kullanılabilir.
@Barış, bu fonksiyonu hiç bilmiyordum, iyi olduğu söylediğin ;)
Bu arada şu Custom Excerpts eklentisini denedim, gayet başarılı, tavsiye ederim.
Merhaba
Yazınız çok faydalı. Konuyla alakalı şunu sormak istiyorum. Sizin verdiğiniz örnekte her yazı için standart 55 kelime ile sınırlandırmıssınız peki bunu her yazı için farklı olacak şekilde istediğimiz karakter sayısı kadar sınırlandırabilirmiyiz? Aklıma özel alanlar geliyor ama burada ne yapıcağımı bilmiyorum. Yardımcı olursanız sevinirim.
İyi Çalışmalar
eklentiyle yapılması dezavantajdı zaten
Bunu cümle yapamazmıyız kelime olunca anlamsız olur diye düşünüyorum cümle olarak yapılabiliyor mu?
Bu fonksiyon yapamıyor bu söylediğini ama benim kendi kodum var bunu yapan :)
Paylaşırsan sevinirim.
bilgiler için teşekkürler :)
okuma ayarlarında tüm metin işaretli olmasına rağmen rss çıktılarım 55 kelime ile sınırlı. ana sayfada problem yok fakat rss de neden özet geliyor çözemedim. bi fikriniz varmı erhan abi?
Makalede zaten bunu anlattım. Lütfen makaleyi okuyup öyle yorum yapalım.
makaleyi okudum erhan abi ama bi türlü rss te tüm metinin görünmesini sağlayamadım. 55 sayısını çok büyük bi sayı değeri girerek yazıların hepsini gösterebiliyorum yada strip_tag’ın içine etiketi girerek resimleri de gösterebiliyorum ama benim istediğim rss çıktımın excerpt fonksiyonu kullanılmadan üretilmesi. ve bunu hangi dosyadan ayarlayacagımı çözemedim. temada problemim yok. teşekkürler.
selamlar yakuter bu verdiğin koda o yazıyla ilgili resimleri nasıl ekleyebiliriz… the_excerpt(); ile yazıyı gösterirken o yazının içindeki resimleride içine entegre etmemizin yolu nedir…gerçekten çok ihtiyacım var yazını sürekli takip ediyorum teşekkürler.
tolga'nın da bahsettiği gibi metinlere kota koyabiliyoruz. Fakat resimler görünmüyo. Yardımcı olabilirmisiniz…
Resimlerin görünmesi için malesef bu fonksiyon yerine başka metodlar kullanmanızı tavsiye ederim. Çünkü bu fonksiyon içeriğe filtre uygulamaktadır.
resimlerin görünmesi için ne yapmamız gerekiyor
güzel bir konuya deyinmişsiniz teşekkür ederim sormak istedigim bir konu daha var yazı için girilen etiketleri kısabiliyormuyuz örnek vermek gerekirse admin panelinde bir yazıya 5 etiket girdim var sayalım bunu yazı içinde sadece 3 er tane gösterme şansımız varmı cvpbınız için şimdiden teşekkürler
Bildiğim kadarıyla normal wordpress fonksiyonlarıyla bunu yapmanız mümkün değil ama elbette kendi yazacağınız veya yazdıracağınız kod ile dilediğiniz kadar etiket görüntüleyebilirsiniz.
Hocam selamlar benim merak ettiğim başka birşey var benim kullandığım temada yukarda verdiğiniz ayarları yapıyorum ama ana sayfada yazıda ne kadar boşluk bırakırsam bırakayım yinede yazılar sırt sırta görünüyor resimdeki gibi : http://img176.imageshack.us/img176/9546/29897418…. ama ben yazı aralarında boşluk bırakınca ana sayfadada boşluklu bir şekilde görülmesini istiyorum örnek resimdeki gibi : http://img546.imageshack.us/img546/2397/59993594…. bunu nasıl ve ne şekilde düzelte bilirim acaba şimdiden yardımlarınız için teşekürler saygılar
anlatim icin tesekkürler.
Merhaba. <?php the_excerpt(); ?> kod anasayfadaki makaleleri özetliyor fakat örnek.
Kategoriler
Photoshop " girdiğimde photoshop kategorisine ekli olan makaleyi özetlemiyor ?
Bunu nasıl yapabilirim. Yani bütün temadaki sayfalarda çalışmasını nasıl sağlayabilirim ?
adamın dipisin vallaha araya aaraya bi hale girdim
Hocam bu formatting.php düzenleme olayını bilmiyorum teşekkürler eline sağlık
Bende bunu arıyordum, anlatım ve bilgilendirme için teşekkürler