WordPress özet yazılarını kişiselleştirin

WordPress, belki de kişiselleştirilebilir en iyi içerik yönetim platformudur. Temalar, eklentiler, kişiselleştirilmiş kodlamalar püüfff bir ton içerik. Çoğu da ücretsiz.

Ben kendi temalarımı kendim kodlayarak kullanıyorum, çoğu zaman da ücretli aldığım bir temayı ya da ücretsiz bulduğumu düzenleyip bir şeyler çıkarıyorum kendimce ortaya. Hem özgün oluyor hem de kendini geliştirebiliyor insan. Yazdığım bu geliştirme yazılarının çoğunu uygulamışımdır. Kimisini can sıkıntısından kaldırdım kimisini hala kullanıyorum kimisini de henüz kullanmaya başladım.

Dün yazdığım yazıda yazı özetlerinin baş harflerinin nasıl düzenlenebileceğinden bahsetmiştim. Bloglarda müthiş bilgiler bulunuyor kişiselleştirmeler hakkında, yeter ki ne aradığımızı bilelim. Uzun zamandır şu özet kısmına bir el atayım diyordum ama bir türlü vakit ayırıp da düzene sokamıyordum. Bugün onu da hallettim.

Bilgi için söyleyeyim, maalesef WordPress konu özetlerini (excerpt) html etiketlerinden arındırılmış olarak gösteriyor. Yani content içeriğinde kalın, italik, renkli puntolar;paragraflar, belirteçler, sıralamalar vs. olsa bile excerpt kısmında sadece düz metin gösterilir. Anasayfada excerpt değil de content kullanımı ise kimi zaman aşırı yoğunluğa ve aynı içeriğin iki kez gösterilmesine neden olabiliyor. Böyle durumlarda yapılması gereken ise excerpt kullanımı kişiselleştirmek ve kullanılmasını istediğimiz etiketleri kendimiz belirlemek. Kulağa hoş geliyor değil mi ?

Sıfır kilometre excerpt düzeni beni bir hayli rahatsız ediyordu. Bahsetmiştim paragrafların okuyucu üzerindeki etkisinden. Ayrıca kalın, italik, renkli elementlerin anasayfada kullanımı da arama motorları üzerinde olumlu sinyal demektir. Yani düzenleme sonucunda bir taşla iki kuş vuracağız.

Yapmamız gereken işlemler gayet basit. WordPress temel dosyalarına dokunmayacağız, bunu başta söyleyeyim. Çünkü bazı düzenlemeler temel dosyalarda yapılıyor ve her güncellemede yenilenmesi gerekiyor.

Öncelikle temamıza ait functions.php’nin yedeğini alıyoruz. Daha sonra aşağıdaki kodu dosyamızın içerisine yerleştiriyoruz.

function yeni_ozet($text) {
        global $post;
        if ( '' == $text ) {
                $text = get_the_content('');
                $text = apply_filters('the_content', $text);
                $text = str_replace('\]\]\>', ']]>', $text);
                $text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
                $text = strip_tags($text, '<p>, <strong>, <em>');
                $excerpt_length = 80;
                $words = explode(' ', $text, $excerpt_length + 1);
                if (count($words)> $excerpt_length) {
                        array_pop($words);
                        array_push($words, '...');
                        $text = implode(' ', $words);
                }
        }
        return $text;
}

Alttaki satır ile özetimizde göstermek istemediğimiz etiketleri kapatıyoruz.

$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);

Bu satır ile de özetimize eklemek istediğimiz etiketleri belirliyoruz. Aşağıdakine göre, content içerisindeki tüm

etiketine ait elementler excerpt te gösterilecek. Ayrıca strong ile kalın, em ile de italik font stilini tanımlıyoruz ki bunlar da gösterilsin.

$text = strip_tags($text, '<p>, <strong>, <em>');

Özet uzunluğumuzu kelime sayısına göre sınırlandırabiliriz, buradaki 80 sayısı özet kelime sayısını gösteriyor.

$excerpt_length = 120;

Aşağıdaki satırda yer alan … ise yazının devamı için kullanılan belirteci ifade ediyor. Dilediğiniz şekilde değiştirebilirsiniz.

array_push($words, '...');

Son olarak functions.php ‘ye WordPress’in kendi excerpt parametrelerini değil de bizim tanımladıklarımızı kullanması için filtre eklememiz gerekiyor.

Yine şu kodları kullanarak bu işlemi kolayca hallediyoruz.

remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'yeni_ozet');

İşlemlerimiz bu kadar. Artık daha kaliteli arayüzler üretmek için gerekli kodlama düzenine sahibiz.
İyi çalışmalar !

İngilizce kaynak için şurayabakabilirsiniz.

Kenan CANOL

Google sayfama göz atabilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir