"Enter"a basıp içeriğe geçin

WordPress functions.php Yararlı Kodlar

Merhaba,
Wordpress blog sahipleri için functions.php dosyası için yararlı kodları paylaşacağız. Bu kodlar ile bir nebze de olsa güvenlik önlemlerini alabilirsiniz veya tüm ekstra özellikleri görebilirsiniz.

fuctions.php nedir?
Bu dosya wordpress blog sitelerinin temalarının fonksiyon dosyasıdır. Bu dosyanın amacı, tema geliştiricilerin tema özelliklerini ve işlevlerini tanımlamalarına izin vermektir. Bu dosya sadece bir WordPress eklentisi gibi işlev görür ve WordPress’de kendi özel kod parçacıklarınızı eklemek için kullanılabilir.

functions.php yararlı kodlar

İşte bu özellikler:
#1 Tüm Site Ayarlarını Görüntüleyen Gizli Yönetici Özelliklerini Görün

Bu kod parçacığı ile veri tabanınız da bulunan tüm site ayarlarınızı wordpress admin panelinizden görüntüleyebilir veya düzenleyebilirsiniz.

// Tum ayarlar icin ozel idari - tum ayarlar menu baglantisi
   function all_settings_link() {
    add_options_page(__('All Settings'), __('All Settings'), 'administrator', 'options.php');
   }
   add_action('admin_menu', 'all_settings_link');

#2 Admin Paneli Giriş Logusunu Değiştirme
Admin paneli girişi, kullanıcı/yazar girişi bölümünde bulunan W logosunu kendinize göre değiştirebilirsiniz.

// WordPress giriş sayfası logusunu değiştirme
function custom_loginlogo() {
echo '<style type="text/css"> 
body.login div#login h1 a {
background-image: url(https://sizinsiteniz.com/logo.png);
}
.login h1 a {
background-size: 269px;
width: 269px;
height:60px;
</style>';
}
add_action('login_head', 'custom_loginlogo');

https://sizinsiteniz.com/logo.png yazan yere kendi logonuzu ekleyin.

#3 WordPress jQuery Dosyalarını Google CDN Üzerinden Çekmek
WordPress ile gelen yerel jQuery komut dosyanızın Google kitaplığından, yani Google CDN üzerinden çekmeniz web sitesi performansını optimize eder ve web sitesi yükleme hızını arttırır.

//jQuery Google Library
function replace_jquery() {
 if (!is_admin()) {
 // comment out the next two lines to load the local copy of jQuery
 wp_deregister_script('jquery');
 wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js', false, '1.11.3');
 wp_enqueue_script('jquery');
 }
}
add_action('init', 'replace_jquery');

#4 WordPress Versiyon Bilgisini Kaldırma (Güvenlik Önlemidir)
WordPress sürüm numaranızı herkese açık olarak göstermeyin. Bu bilgiyi herkese açık hale getirmek, saldırganların belirli bir sürümdeki bilinen güvenlik açıklarından yararlanmalarını kolaylaştırır.

// wordpress versiyonu gizleme
function complete_version_removal() {
 return '';
}
add_filter('the_generator', 'complete_version_removal');

#5 Ön İzleme Sayısına Sınır Koyma
Yazı yazarken yazınızın sitenizin ön yüzünde nasıl görüneceğini görmek için wordpress’in ön izleme özelliğini kullandığınızda her bir ön izleme veri tabanınızda kayıt altına alınır. Bir yazıyı onlarca kez ön izleme özelliği kullanarak incelediğinizde ve sitenizde yüzlerce yazı yazdığınızda tüm bu kayıt altına alınan ön izlemeler veri tabanınıza muazzam bir yük bindirir.

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

#6 Yeniden Boyutlandırılmış Resimleri Görünüm Netleştirme
Blog sitenize eklediğiniz resimleri boyutlandırınca hafif bir bulanıklık oluşuyor ve bu kod ile o bulanıklığı giderebilirsiniz.
Not: Bu özellik sadece JPEG formatı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);

#7 Yazıların Özet Uzunluğunu Kelime Sayısı Olarak Değiştirme
WordPress’in yazı gösterimlerinde daha fazla oku linkinden önce yazı özeti için belirlediği kelime sayısı 55’dir. Eğer tema özellikleriniz arasında bu kelime sayısını değiştirme kısmı yoksa, bunu alttaki kodu functions.php dosyanıza ekleyerek de değiştirebilirsiniz.

function new_excerpt_length($length) { 
    return 100;
}

add_filter('excerpt_length', 'new_excerpt_length');

#8 Admin Paneli Yazılar/Sayfalar Sekmesinde İçeriklerin Öne Çıkarılmış Görsellerini de Göstermek
Altta verdiğim kodu functions.php dosyanıza eklediğinizde admin paneli yazılar / sayfalar sekmesinde bir de bu kısımlarda bulunan içeriklerin öne çıkarılmış görselleri de listelenir.

/****** Öne Çıkarılmış Görselleri Yazı/Sayfa Sekmesinde Gösterme ******/
if ( !function_exists('AddThumbColumn') && function_exists('add_theme_support') ) {

    // for post and page
    add_theme_support('post-thumbnails', array( 'post', 'page' ) );

    function AddThumbColumn($cols) {

        $cols['thumbnail'] = __('Thumbnail');

        return $cols;
    }

    function AddThumbValue($column_name, $post_id) {

            $width = (int) 35;
            $height = (int) 35;

            if ( 'thumbnail' == $column_name ) {
                // thumbnail of WP 2.9
                $thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
                // image from gallery
                $attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
                if ($thumbnail_id)
                    $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
                elseif ($attachments) {
                    foreach ( $attachments as $attachment_id => $attachment ) {
                        $thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
                    }
                }
                    if ( isset($thumb) && $thumb ) {
                        echo $thumb;
                    } else {
                        echo __('None');
                    }
            }
    }

    // for posts
    add_filter( 'manage_posts_columns', 'AddThumbColumn' );
    add_action( 'manage_posts_custom_column', 'AddThumbValue', 10, 2 );

    // for pages
    add_filter( 'manage_pages_columns', 'AddThumbColumn' );
    add_action( 'manage_pages_custom_column', 'AddThumbValue', 10, 2 );
}

#9 Yazılardaki İlk Resmi Otomatik Öne Çıkarılmış Görsel Olarak Seçtirmek
Bu özellik ile yazılara eklediğiniz ilk resmi otomatik olarak öne çıkarılmış görsel olarak belirler.

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);

#10 Otomatik Çıkış Süresini Uzatmak
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' );

#11 Yorum Yapanın Yazar Linkini Kaldırmak/Yorumlardaki Site Linklerini Kaldırmak
Alttaki kodu functions.php dosyanıza eklediğinizde ise sitenizin genelinde yorumlardaki site linklerini kaldırmış olursunuz.

/**
 * 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 );

#12 Sitenize Yeni Admin Kullanıcısı Eklemek
WordPress sitenize admin kullanıcısını functions.php dosyanız üzerinden de ekleyebilirsiniz.

function wpmavi_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpmavi_admin_account');

#13 Read More – Devamını Oku Gibi Yazı Özeti Kısmında Bulunan Metni Değiştirmek
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.

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' );

#14 WordPress Site İçi Arama İşlevini Etkisiz Hale Getirme / WordPress Site İçi Arama Özelliğini Kapatmak
Eğer wordpress site içi arama özelliğini etkisiz hale getirmek istiyorsanız altta paylaştığım kodu functions.php dosyanıza ekleyin.

function fb_filter_query( $query, $error = true ) {

if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;

// to error
if ( $error == true )
$query->is_404 = true;
}
}

add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
5/5 - (1 değerlendirme)

İlk Yorumu Siz Yapın

    Bir cevap yazın

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