WordPress Sitenizde Olmazsa Olmaz Functions.php Kodları

85
WordPress Sitenizde Olmazsa Olmaz Functions.php Kodları

Bütün WordPress temalarında functions.php dosyasıda bulunur.Bu dosya bir eklenti görevi görüp içerisinde düzenlemeler ve faydalı şeyler yapmanızı sağlar. Bu yazımızda WordPress functions.php dosyası için en güzel düzenlemeleri ve kullanışlı işlevlerden bazılarından bahsedeceğiz.

Daha Öncesinde Funtions.php Dosyasını Tam Olarak Merak Ediyorsanız;

Functions.php , bir WordPress tema dosyasıdır.Functions.php dosyası tüm ücretli ve ücretsiz WordPress temaları ile birlikte gelmektedir.

Functions.php dosyasının amacı , tema geliştiricilerinin tema detaylarını ve işlevlerini tanımlamalarına izin vermektir.Functions.php dosyası bir WordPress eklentisi gibi davranır ve WordPress’de kendinize ait olan kod parçalarınızı sitenize eklemek için kullanılabilir.

 WordPress ile ilgili makale yayınlayan bir çok internet sitesinde yapmak istediğiniz işlevler ile ilgili verilen kodları functions.php dosyanıza eklemeniz istenir.

Evet , siz bu kod satırlarını functions.php dosyanıza eklediğinizde aslında sitenize küçük boyutlu bir wordpress eklentisi kurmuş gibi olursunuz.

# Functions.php tema dosyanıza nasıl kod eklenir ve functions.php dosyanıza ekleyebileceğiniz en faydalı kodları,  bu yazımızda sizlere yarar sağlaması için detaylarıyla yazdık.

Functions.php Dosyasına Ekleyebileceğiniz İşinize Yarayacak Kodlar

Özellik: WordPress Güncelleme Bildirilerini Admin Dışındaki Tüm Kullanıcılara Kapatma:

Altta verdğimiz kodu functions.php dosyanıza eklediğinizde admin kullanıcıları dışında hiç bir kullanıcıı wordpress sitenize giriş yaptığıda wordpress güncelleme bildirimlerini görmez.

// yorumlar istenemeyen & sil linkleri ekleme
function delete_comment_link($id) {
 if (current_user_can('edit_post')) {
 echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&c='.$id.'">del</a> ';
 echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&dt=spam&c='.$id.'">spam</a>';
 }
}

Özellik: Veritabanında Kayıt Altına Alınan Ön İzleme Sayısına Sınır Koyma:

WordPress’de yazınızı yazdıktan sonra sitenizin önizlemesinde nasıl görüneceğini görmek için önizleme özelliğini kullandığınız takdirde her bir önizleme için veritabanınızda bir kayıt oluşur.

Bir yazıyı defalarca önizleme özelliğini kullanarak incelediğinizde ve sitenizde onlarca yazı yazdığınızda tüm kayıt alınan önizlemeler veritabanınızda yük oluşturacaktır.

WordPress sitenizin veritabanında böyle bir yük oluşturmamak için , önizleme kayıtlarını sınırlandırabilirsiniz. Her WordPress kullanıcısının yapması gereken bir işlem olarak düşünüyoruz ve kodu aşağıya ekliyoruz.

Hemen altta verdiğim kodu functions.php dosyanıza eklediğinizde kayıt altına alınan ön izleme taslaklarını max. 5 adet ile sınırlandırabilrisiniz.

/**
 * Onizlemeleri wp-config.php dosyasinda belirtilmedikce funcitons uzerinden sinirlandirma
 */
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);

Özellik: Yeniden Boyutlandırılmış Resimleri Görünüm Açısından Netleştirme:

WordPress sitenizde yüklü olarak bulunan JPEG dosyalarının yeniden boyutlandırıldığında , biraz daha bulanık hale geldiğini elbet farketmişsinizdir.

İşte , verdiğimiz kodu functions.php dosyanıza eklediğinizde yeniden boyutlandırdığınız resimleri daha keskinleştirerek daha güzel ve net bir görüntü elde edebilirsiniz.

Not: Bu özellik sadece JPEG fotmatındaki resimler içindir.

function ajx_sharpen_resized_files( $resized_file ) {

    $image = wp_load_image( $resized_file );
    if ( !is_resource( $image ) )
        return new WP_Error( 'error_loading_image', $image, $file );

    $size = @getimagesize( $resized_file );
    if ( !$size )
        return new WP_Error('invalid_image', __('Could not read image size'), $file);
    list($orig_w, $orig_h, $orig_type) = $size;

    switch ( $orig_type ) {
        case IMAGETYPE_JPEG:
            $matrix = array(
                array(-1, -1, -1),
                array(-1, 16, -1),
                array(-1, -1, -1),
            );

            $divisor = array_sum(array_map('array_sum', $matrix));
            $offset = 0; 
            imageconvolution($image, $matrix, $divisor, $offset);
            imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 90, 'edit_image' ));
            break;
        case IMAGETYPE_PNG:
            return $resized_file;
        case IMAGETYPE_GIF:
            return $resized_file;
    }

    return $resized_file;
}   

add_filter('image_make_intermediate_size', 'ajx_sharpen_resized_files',900);

Özellik: Yazıların Özet(Devamını Oku) Uzunluğunun Kelime Sayısı Olarak Değştirme:

WordPress yazılarında daha fazla oku linkinden önceki yazı özeti için kelime sayısı default olarak 55’dir. Eğer temanızda bu kelime sayısını değiştirme kısmı yok ise , verdiğimiz kodu functions.php dosyanıza ekleyerek bu kelime sayısını isteğinize göre değiştirebilirsiniz.

Alttaki kodda bu kelime sayısı 90’a çıkartılmıştır. Eğer siz bu sayısı değiştirmek isterseniz, kod içerisinde bulunan 90 sayısını değiştirmeniz yeterli olacaktır.

function new_excerpt_length($length) { 
    return 90;
}

add_filter('excerpt_length', 'new_excerpt_length');

Özellik: Kendi WordPress Sitenizin Kendinize Gönderdiği Pingleri Kapatma:

Bazen wordpress site içi linkleme yaptığınızda, bir yazınızdan başka bir yazınıza iç bağlantı kurduğunuzda kendinizden bir pingback (geri bildirim) alırsınız. İşte altta verdiğim kodu functions.php dosyanıza eklediğinizde bu geri bildirim kapanır.

//site için ping kapatma
function no_self_ping( &$links ) {
    $home = get_option( 'home' );
    foreach ( $links as $l => $link )
        if ( 0 === strpos( $link, $home ) )
            unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );

Özellik: WordPress Yazınızdaki İlk Resmi Otomatik Öne Çıkarılmış Görsel Olarak Gösterme:

WordPress’de ki bir yazıya öne çıkarılmış görsel eklemek için yazı düzenleyiciden “öne çıkan görsel belirle” deyip, resmi ayrıca eklemeniz gerekir.

Tabii bir yazıdaki ilk resmi yazının öne çıkarılmış resmi olarak otomatik olarak kullanmak da mümkün. Bir çok tema bunu otomatik olarak yapar. Bunu yapan eklentiler de var. Mesela Auto Post Thumbnail. Ancak bunun için eklenti kullanmıza gerek yok. Altta verdiğim kodu functions.php dosyanıza eklemeniz yeterli olacaktır.

add_filter('get_post_metadata', function($value, $object_id, $meta_key, $single) {
	if ($meta_key !== '_thumbnail_id' || $value) {
		return $value;
	}

	preg_match('~<img[^>]+wp-image-(\\d+)~', get_post_field('post_content', $object_id), $matches);
	if ($matches) {
		return $matches[1];
	}
	return $value;
}, 10, 4);

Özellik: Varsayılan Olarak Gelen WordPress Bileşenlerini Kaldırma:

Genelde çoğumuzun kullanmadığı ( metin bileşeni hariç ) wordpress’in varsayılan olarak getirdiği bir çok bileşen, bileşenler sekmesinde temanızında sağladığı bileşenler de gelince gereksiz bir kalabalığa yol açar.

İşte, siz de benim gibi bu gereksiz kalabalıktan kurtulmak isterseniz aşağıda verdiğim kodu functions.php dosyanıza eklediğinizde wordpress’in varsayılan olarak getirdiği tüm bileşenlerinden kurtulmuş olursunuz.

// unregister all default WP Widgets
function unregister_default_wp_widgets() {
    unregister_widget('WP_Widget_Pages');
    unregister_widget('WP_Widget_Calendar');
    unregister_widget('WP_Widget_Archives');
    unregister_widget('WP_Widget_Links');
    unregister_widget('WP_Widget_Meta');
    unregister_widget('WP_Widget_Search');
    unregister_widget('WP_Widget_Categories');
    unregister_widget('WP_Widget_Recent_Posts');
    unregister_widget('WP_Widget_Recent_Comments');
    unregister_widget('WP_Widget_RSS');
    unregister_widget('WP_Widget_Tag_Cloud');
}
add_action('widgets_init', 'unregister_default_wp_widgets', 1);

Özellik: Otomatik Çıkış Süresini Uzatma:

Sitenize admin girişi yaptıktan belirli bir süre sonra wordpress otomatik olarak size çıkış yaptırır. Tekrar girmek için ise giriş sayfanıza girip yeniden kullanıcı adı ve şifrenizi girmeniz gerekir.

Alttaki kodu functions.php dosyanıza eklediğinizde ise otomatik çıkış süresi 1 yıllığa uzatılır. Böylece 1 yıl boyunca wordpress’in sizi belirli bir süre sonra otomatik olarak çıkış yaptırması ortadan kalkar.

function keep_me_logged_in_for_1_year( $expirein ) {
   return 31556926; // 1 year in seconds
}
add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );

Özellik: Yorum Yapanın Yazar Linkini Kaldırma / Yorumlardaki Site Linklerini Kaldırma:

WordPress sitenize yapılan yorumlardaki gravatar profilleri, yorum yapanın adını o kişinin sitesine nofollow olarak bağlarken,  yani SEO ile ilgili herhangi bir soruna yol açmazken bu linkler bazen ciddi müdahalelere neden olabiliyor.

Fonksiyonlar.php dosyanıza aşağıdaki kodu eklediğinizde, site bağlantılarını sitenizdeki yorumlardan kaldıracaksınız.

/**
 * Yorumlardaki Site Linklerini Kaldırma
 * 
 * @return string $author
 */
function wpse218025_remove_comment_author_link( $return, $author, $comment_ID ) {
 return $author;
}
add_filter( 'get_comment_author_link', 'wpse218025_remove_comment_author_link', 10, 3 );

Özellik: Read More – Devamını Oku veya Yazı Özeti Bölümünde Bulunan Yazıyı Değiştirme:

Yazı özeti kısmında ziyaretçiyi yazının devamına yönlendirmesi için bulunan metni değiştirmek ister misiniz ? Bunun için tek yapmanız gereken altta verdiğim kodu functions.php sayfanıza eklemeniz.

Tabii bu metni ne ile değiştirmek istiyorsanız, kod içerisinde bulunan Devamını Oku kısmını değiştirmeyi unutmayın.

function modify_read_more_link() {
 return '<a class="more-link" href="' . get_permalink() . '">Devamını Oku</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );

Umarız Functions.php Dosyası İçin Son Derece Faydalı Kod başlıklı yazımızı yararlı bulmuşsunuzdur.

Lütfen yorumlarda yardımcı olmamızı istediğiniz bölümleri veya diğer yorumlarınızı belirtiniz.

Bir cevap yazın