WordPress Logo
WordPress

WordPress Eklentisiz Yazı Kısaltma Fonksiyonu

WordPress’ye yazı uzunluğu değerini istediğiniz gibi değiştirebileceğinizi biliyor muydunuz? WordPres eklenti kullanmadan yazı kısaltma kodundan bahsedeceğim.

WordPress Logo

WordPress’te blog içerikleri 55 kelime olarak kısaltılmaktadır. Fakat yazı uzunluğu değerini istediğiniz gibi değiştirebileceğinizi biliyor muydunuz? Eklenti kullanmadan yazı kısaltma fonksiyonu ve nasıl kullanılacağını yazdım. Bu kodu sıkça kullanmamın nedeni WordPress teması kodlarken sürekli yazı kısaltma koduna ihtiyacım olmasıydı.

Bu tarz WordPress kodlarını Bugrayazar.com.tr/WordPressKodArşivi
sayfasından inceleyebilirsiniz.

Özel Yazı Kısaltma Fonksiyonu

Aşağıda yazı kısaltma kodu mevcut. Bu kodu kullanmak için tema klasörünüzün içindeki functions.php dosyasını açarak aşağıdaki kodu eklemeniz yeterli. Temanızın istediğiniz yerinde  yazı kısaltma kodunu dilediğiniz kadar kullabilirsiniz.

Sitenize kod eklemeyi bilmiyorsanız WordPress Siteye Kod Nasıl Eklenir? yazısını tıklayarak hemen öğrenebilirsiniz.

function hk_ozel_kisaltma( $args = array() ) {

// Varsayılan
$varsayilan = array(
   'post'            => '', // belirli bir yazıda uygulanması için post_id parametresi girilmelidir.
   'length'          => 40, // Yazı karakter uzunluğu
   'readmore'        => false, // Devamını oku butonu aktif/kapalı durumu.
   'readmore_text'   => esc_html__( 'Devamını oku', 'hk-ozel-tema' ), // Devamını oku yazısı.
   'readmore_after'  => '',
   'custom_excerpts' => true,
   'disable_more'    => false,
);

// Filtreyi Uygula
$varsayilan = apply_filters( 'hk_ozel_kisaltma_varsayilan', $varsayilan );

// args yerleştir
$args = wp_parse_args( $args, $varsayilan );

// args'lara filtre ugula
$args = apply_filters( 'hk_ozel_kisaltma_args', $varsayilan );

// Ayıkla
extract( $args );

// genel yazı (post) verisini al
if ( ! $post ) {
   global $post;
}

// Yazı ID'si
$post_id = $post->ID;

// Özel kısaltma var mı yok mu kontrol et
if ( $custom_excerpts && has_excerpt( $post_id ) ) {
   $output = $post->post_excerpt;
}

// Eğer yok ise bir tane oluştur.
else {

   // Devamını oku linki
   $readmore_link = '<a href="' . get_permalink( $post_id ) . '" class="readmore">' . $readmore_text . $readmore_after . '</a>';

   // Daha fazla etiket olup olmadığını kontrol et ve içeriği döndür.
   if ( ! $disable_more && strpos( $post->post_content, '<!--more-->' ) ) {
      $output = apply_filters( 'the_content', get_the_content( $readmore_text . $readmore_after ) );
   }

   // Daha fazla etiket tanımladıysa wp_trim_words kullanarak kısaltın.
   else {

      // Kısaltmayı oluştur.
      $output = wp_trim_words( strip_shortcodes( $post->post_content ), $length );

      // Devamını oku özelliği aktif edilmiş ise bunu özel kısaltma fonksiyonuna ekle.
      if ( $readmore ) {

         $output .= apply_filters( 'hk_ozel_kisaltma_readmore_link', $readmore_link );

      }

   }

}

// Bütün filtreleri uygula ve ekrana bastır.
return apply_filters( 'hk_ozel_kisaltma', $output );
}

Özel Kısaltma Fonksiyonu Nasıl Kullanılır?

Geldik yukarıda oluşturduğumuz özel kısaltma fonksiyonunu temamız da nasıl kullanacağımıza. Farklı alanlarda kullanmak üzere artık “the_excerpt()” fonksiyonu yerine hk_ozel_kisaltma ($args) fonksiyonunu kullanabilirsiniz.

<?php echo hk_ozel_kisaltma ( $varsayilan = array(
	'length'          => 40,
	'readmore'        => true,
	'readmore_text'   => esc_html__( 'Devamını oku', 'benim-temam' ),
	'custom_excerpts' => true,
) ); ?>

Yararlanılan Kaynaklar:

Bir cevap yazın

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