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ı.
Ö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.
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 );
}
Sitenize kod eklemeyi bilmiyorsanız WordPress Siteye Kod Nasıl Eklenir? yazısını tıklayarak hemen öğrenebilirsiniz.
Ö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,
) ); ?>
Daha fazlası için WordPress Kod Arşivi sayfasını inceleyebilirsiniz.
Yararlanılan Kaynaklar: