WordPress, esnekliği ve geniş özelleştirme olanakları sayesinde dünyanın en popüler içerik yönetim sistemi haline gelmiştir. Bu esnekliğin temel taşlarından biri de `functions.php` dosyasıdır. Bu dosya, tema ve eklenti geliştiricilerinin WordPress’in çekirdek işlevselliğini genişletmesine, değiştirmesine ve iyileştirmesine olanak tanır. Temanızın klasöründe yer alan bu güçlü dosya, doğru kullanıldığında sitenizi daha güvenli, daha hızlı ve daha işlevsel hale getirebilir. Bu makalede, ileri düzey kullanıcılar için `functions.php` dosyasına eklenebilecek, sitenizin performansını ve kullanıcı deneyimini bir üst seviyeye taşıyacak 10 pratik ve güçlü kod snippet’ini (kod parçacığı) detaylı bir şekilde inceleyeceğiz.
İçerik Tablosu
WordPress `functions.php` Dosyasına Giriş
Her WordPress temasının kök dizininde bulunan `functions.php` dosyası, temanıza özel özellikler ve işlevler eklemenizi sağlayan bir nevi eklenti dosyasıdır. WordPress’in “hook” (kanca) ve “filter” (filtre) sistemini kullanarak, sitenizin hemen her yönüne müdahale etmenize olanak tanır. Bu dosyaya ekleyeceğiniz basit bir kod parçacığı ile yönetim panelini özelleştirebilir, güvenlik önlemleri alabilir veya sitenizin çalışma mantığını değiştirebilirsiniz.
`functions.php` Dosyası Nedir ve Görevi Nedir?
Temel olarak `functions.php`, temanızın standart fonksiyonlarının ötesinde PHP kodları çalıştırmanıza olanak sağlar. Bir eklenti gibi çalışır ancak tamamen temanıza bağlıdır. Temayı değiştirdiğinizde, `functions.php` dosyasına eklediğiniz tüm kodlar da devre dışı kalır. Bu dosyanın ana görevleri arasında; WordPress kancalarını kullanarak yeni özellikler eklemek, var olan özellikleri değiştirmek, kısa kodlar (shortcodes) oluşturmak ve sitenin genel görünümünü ve işleyişini özelleştirmek bulunur.
Child Theme (Alt Tema) Kullanımının Önemi
`functions.php` dosyasına kod eklerken yapılması gereken en önemli şeylerden biri, bu değişiklikleri bir Child Theme (Alt Tema) üzerinden yapmaktır. Eğer kodlarınızı doğrudan ana temanın `functions.php` dosyasına eklerseniz, tema güncellendiğinde tüm bu değişiklikler silinecektir. Bir alt tema kullanmak, ana temanın tüm özelliklerini devralırken, yaptığınız özelleştirmelerin güncellemelerden etkilenmeden kalıcı olmasını sağlar. Bu yöntem, sitenizin sürdürülebilirliği ve güvenliği için kritik bir adımdır.
Kod Eklerken Dikkat Edilmesi Gereken Güvenlik Önlemleri ve Yedekleme
`functions.php` dosyasına yanlış veya hatalı bir kod eklemek, sitenizin “beyaz ekran hatası” vermesine ve tamamen erişilemez hale gelmesine neden olabilir. Bu nedenle, herhangi bir değişiklik yapmadan önce mutlaka sitenizin tam bir yedeğini alın. Kodları eklerken bir FTP istemcisi veya cPanel gibi bir kontrol paneli üzerinden dosya yöneticisine erişiminiz olduğundan emin olun. Böylece bir hata durumunda, sorunlu kodu hızla kaldırabilir veya yedekten geri dönebilirsiniz.
Snippet 1: WordPress Giriş URL’sini Değiştirme
WordPress sitelerinin en yaygın saldırı hedeflerinden biri, varsayılan giriş sayfası olan `wp-login.php` dosyasıdır. Kötü niyetli botlar ve bilgisayar korsanları, bu standart adresi hedef alarak kaba kuvvet (brute-force) saldırıları düzenler. Giriş URL’sini değiştirmek, bu otomatik saldırıların büyük bir kısmını engelleyen basit ama etkili bir güvenlik katmanıdır.
Varsayılan Giriş URL’sinin Güvenlik Riskleri
Tüm WordPress sitelerinde giriş adresinin `/wp-login.php` veya `/wp-admin` olması, saldırganların işini kolaylaştırır. Bu bilinen adreslere sürekli olarak kullanıcı adı ve şifre kombinasyonları deneyen botlar, zayıf bir şifre bulduklarında sitenize yetkisiz erişim sağlayabilirler. Bu durum, sunucu kaynaklarının tükenmesine ve sitenizin yavaşlamasına da neden olabilir.
`wp-login.php` Adresini Gizlemek İçin Gerekli Kod
Aşağıdaki kodu alt temanızın `functions.php` dosyasına ekleyerek giriş URL’nizi özelleştirebilirsiniz. Bu kod, giriş sayfasını sizin belirleyeceğiniz yeni bir adrese taşır ve eski adreslere yapılan istekleri engeller.
add_action('login_enqueue_scripts', 'custom_login_redirect');
function custom_login_redirect(){
if(strpos($_SERVER['REQUEST_URI'], 'new-login-url') === false){
wp_redirect(home_url());
exit;
}
}
add_filter('login_url', 'custom_login_url_filter', 10, 3);
function custom_login_url_filter($login_url, $redirect, $force_reauth){
$login_url = home_url('/new-login-url/');
if(!empty($redirect)){
$login_url = add_query_arg('redirect_to', urlencode($redirect), $login_url);
}
return $login_url;
}
Not: Yukarıdaki kodda ‘new-login-url’ kısmını kendi belirleyeceğiniz benzersiz bir ifadeyle değiştirmelisiniz.
Kodun Çalışma Prensibi ve `.htaccess` Kuralları ile Entegrasyonu
Bu kod, iki ana kanca kullanarak çalışır. `login_enqueue_scripts` kancası, birisi giriş sayfasına erişmeye çalıştığında tetiklenir ve adresin sizin belirlediğiniz yeni URL olup olmadığını kontrol eder. Eğer değilse, kullanıcıyı ana sayfaya yönlendirir. `login_url` filtresi ise WordPress’in oluşturduğu tüm giriş linklerinin (örneğin şifremi unuttum e-postasındaki) yeni URL’nizi kullanmasını sağlar. Daha etkili bir gizleme için, bu kodla birlikte `.htaccess` dosyasına `wp-login.php`’ye doğrudan erişimi engelleyen kurallar da ekleyebilirsiniz.
Snippet 2: Yönetim Paneli Yazı Listesine Özel Sütun Ekleme
WordPress yönetim panelini kendi iş akışınıza göre özelleştirmek, içerik yönetim sürecini hızlandırabilir ve daha verimli hale getirebilir. Özellikle çok sayıda içeriğe sahip sitelerde, yazı listesine ekleyeceğiniz özel bir sütun, aradığınız bilgiye anında ulaşmanızı sağlar. Örneğin, yazıların öne çıkan görsellerini liste ekranında görmek oldukça pratiktir.
Yönetim Panelini Özelleştirmenin İş Akışına Etkisi
Varsayılan olarak WordPress yazı listesi; başlık, yazar, kategoriler, etiketler ve tarih gibi temel bilgileri gösterir. Ancak SEO puanı, okunma süresi, kelime sayısı veya öne çıkan görsel gibi ek bilgileri bu ekranda görmek, içerik stratejinizi yönetirken size büyük kolaylık sağlar. Bu özelleştirme, hangi yazıların eksik bilgi içerdiğini bir bakışta anlamanıza yardımcı olur.
Yazı Listesine “Öne Çıkan Görsel” Sütunu Ekleme Kodu
Aşağıdaki kod parçacığı, “Yazılar” ekranına “Öne Çıkan Görsel” adında yeni bir sütun ekler ve her yazının küçük bir görsel önizlemesini bu sütunda gösterir.
add_filter('manage_posts_columns', 'add_featured_image_column');
function add_featured_image_column($columns){
$columns['featured_image'] = 'Öne Çıkan Görsel';
return $columns;
}
add_action('manage_posts_custom_column', 'show_featured_image_column', 10, 2);
function show_featured_image_column($column_name, $post_id){
if($column_name == 'featured_image'){
echo get_the_post_thumbnail($post_id, 'thumbnail');
}
}
`manage_posts_columns` ve `manage_posts_custom_column` Hook’larının Kullanımı
Bu işlem iki adımdan oluşur. İlk olarak, `manage_posts_columns` filtresi kullanılarak mevcut sütunlar dizisine ‘featured_image’ adında yeni bir eleman eklenir ve başlığı belirlenir. İkinci adımda ise `manage_posts_custom_column` eylem kancası devreye girer. Bu kanca, eklediğimiz her yeni sütunun içeriğini doldurmak için çalışır. Kancanın içindeki koşullu ifade, sütun adının ‘featured_image’ olup olmadığını kontrol eder ve eğer öyleyse, o yazıya ait öne çıkan görseli (`get_the_post_thumbnail` fonksiyonu ile) ekrana basar.
Sütunları Tıklanabilir ve Sıralanabilir Yapma
Eklenen sütunları daha da işlevsel hale getirmek için onları sıralanabilir yapabilirsiniz. Bunun için `manage_edit-post_sortable_columns` filtresini kullanmanız gerekir. Bu filtre ile hangi özel sütunun hangi meta veriye göre sıralanacağını belirleyebilirsiniz. Örneğin, kelime sayısı sütunu eklediyseniz, bu filtreyi kullanarak yazılarınızı kelime sayısına göre artan veya azalan şekilde sıralayabilirsiniz.
Snippet 3: SVG Dosya Yüklemelerine İzin Verme
SVG (Scalable Vector Graphics), web sitelerinde logo, ikon ve basit illüstrasyonlar için kullanılan XML tabanlı bir vektör resim formatıdır. JPG veya PNG gibi formatların aksine, kalitesi bozulmadan istenilen boyuta ölçeklenebilir ve genellikle daha düşük dosya boyutlarına sahiptir. Bu da sayfa yüklenme hızını olumlu etkiler.
SVG Formatının Avantajları ve WordPress’teki Varsayılan Durumu
SVG’nin en büyük avantajları; ölçeklenebilirlik, küçük dosya boyutu, CSS ve JavaScript ile manipüle edilebilmesi ve metin tabanlı olduğu için SEO dostu olmasıdır. Ancak WordPress, potansiyel güvenlik riskleri nedeniyle varsayılan olarak SVG dosyalarının medya kütüphanesine yüklenmesine izin vermez. Çünkü bir SVG dosyası, kötü amaçlı JavaScript kodları içerebilir.
Medya Kütüphanesine SVG Desteği Ekleyen Kod
Eğer güvenilir kaynaklardan elde ettiğiniz SVG dosyalarını kullanıyorsanız, aşağıdaki kodu `functions.php` dosyanıza ekleyerek bu kısıtlamayı kaldırabilirsiniz. Bu kod, WordPress’in izin verilen dosya türleri listesine SVG’yi ekler.
function allow_svg_upload($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'allow_svg_upload');
Güvenlik Değerlendirmesi: SVG Yüklerken Dikkat Edilmesi Gerekenler
SVG yüklemesine izin vermek, sitenize bir güvenlik açığı ekleme potansiyeli taşır. Bu nedenle, bu özelliği etkinleştirdiğinizde çok dikkatli olmalısınız. Yalnızca güvendiğiniz kaynaklardan indirdiğiniz veya kendinizin oluşturduğu SVG dosyalarını yükleyin. Sitenize dosya yükleme yetkisi olan diğer kullanıcıları (yazarlar, editörler vb.) bu konuda bilgilendirin. Güvenliği artırmak için, yüklenen SVG dosyalarını “temizleyen” (sanitizing) eklentiler kullanmayı da düşünebilirsiniz.
Snippet 4: Belirli Kullanıcı Rolleri İçin Yönetim Çubuğunu (Admin Bar) Gizleme
WordPress Yönetim Çubuğu (Admin Bar), giriş yapmış kullanıcıların sitenin ön yüzündeyken yönetim paneli kısayollarına hızlıca erişmesini sağlayan kullanışlı bir araçtır. Ancak bu çubuk, abone (subscriber) gibi yönetim paneline erişim ihtiyacı olmayan kullanıcılar için gereksiz olabilir ve site tasarımının bütünlüğünü bozabilir.
Yönetim Çubuğunun Farklı Kullanıcı Deneyimlerine Etkisi
Yöneticiler ve editörler için Admin Bar vazgeçilmez bir kolaylık sağlarken, bir foruma üye olmuş veya bir bültene abone olmuş standart bir kullanıcı için kafa karıştırıcı olabilir. Kullanıcı deneyimini iyileştirmek adına, her kullanıcı rolüne sadece ihtiyaç duyduğu araçları sunmak en doğru yaklaşımdır. Bu, sitenizin daha profesyonel ve kullanıcı odaklı görünmesini sağlar.
Abone (Subscriber) Rolü İçin Yönetim Çubuğunu Kaldırma Kodu
Aşağıdaki kod, mevcut kullanıcının rolünü kontrol eder ve eğer “abone” değilse veya yönetici yetkilerine sahip değilse yönetim çubuğunu gizler. Genellikle, abone rolü dışındaki tüm rollerin yönetim çubuğunu görmesi istendiği için, sadece aboneler için gizlemek daha mantıklıdır.
add_action('after_setup_theme', 'remove_admin_bar_for_subscribers');
function remove_admin_bar_for_subscribers() {
if (!current_user_can('edit_posts')) {
show_admin_bar(false);
}
}
`current_user_can` Fonksiyonu ile Koşullu Mantık Kurma
Bu kodun kalbinde `current_user_can()` fonksiyonu yer alır. Bu fonksiyon, o anki kullanıcının belirli bir yetkiye sahip olup olmadığını kontrol eder. Örnekte, `edit_posts` (yazıları düzenleme) yetkisi sorgulanır. Varsayılan olarak, “Abone” rolü bu yetkiye sahip değildir, ancak Editör, Yazar ve Yönetici gibi roller sahiptir. Bu sayede, `!current_user_can(‘edit_posts’)` ifadesi, “eğer kullanıcı yazı düzenleme yetkisine sahip değilse” anlamına gelir ve bu koşul sağlandığında `show_admin_bar(false)` komutu ile yönetim çubuğu gizlenir.
Snippet 5: Yazı Revizyonlarının Sayısını Sınırlama
WordPress, içeriklerinizi her kaydettiğinizde otomatik olarak bir revizyon (eski bir kopya) oluşturur. Bu özellik, yanlışlıkla yapılan değişiklikleri geri almak veya bir yazının önceki versiyonlarına dönmek için hayat kurtarıcı olabilir. Ancak, sınırsız revizyon birikmesi zamanla veritabanınızı şişirerek sitenizin performansını olumsuz etkileyebilir.
Sınırsız Yazı Revizyonlarının Veritabanı Performansına Etkisi
Her revizyon, veritabanınızdaki `wp_posts` tablosunda yeni bir satır olarak saklanır. Uzun bir makale üzerinde defalarca değişiklik yaptığınızda, tek bir yazı için onlarca revizyon birikebilir. Yüzlerce yazısı olan bir sitede bu durum, veritabanı boyutunun gereksiz yere büyümesine ve sorgu sürelerinin uzamasına neden olur. Bu da hem yönetim panelinin hem de sitenin ön yüzünün yavaşlamasına yol açar.
| Özellik | Sınırsız Revizyon (Varsayılan) | Sınırlı Revizyon (Önerilen) |
|---|---|---|
| Veritabanı Boyutu | Zamanla kontrolsüz şekilde büyür. | Kontrol altında ve optimize kalır. |
| Site Performansı | Yavaş sorgular nedeniyle düşebilir. | Daha hızlı veritabanı sorguları sağlar. |
| Yedekleme Süresi | Daha büyük yedek dosyaları ve daha uzun yedekleme süreleri. | Daha küçük ve hızlı yedekleme işlemleri. |
| Geri Yükleme | Önceki versiyonlara dönmek için çok sayıda seçenek sunar. | Yeterli sayıda (3-5) versiyon ile geri yükleme imkanı sunar. |
Revizyon Sayısını Belirli Bir Rakamla Sınırlandıran Kod
Veritabanı sağlığını korumak için yazı başına tutulacak revizyon sayısını sınırlamak en iyi yöntemdir. Genellikle 3 ile 5 arası bir rakam yeterlidir. Aşağıdaki kodu `functions.php` dosyanıza değil, sitenizin kök dizinindeki `wp-config.php` dosyasına, `/* That’s all, stop editing! */` satırından önce eklemeniz gerekmektedir.
define('WP_POST_REVISIONS', 3);
Bu kod, her yazı için en fazla 3 revizyon saklanmasını sağlar. Yeni bir revizyon oluşturulduğunda, en eski olanı otomatik olarak silinir.
Revizyonları Tamamen Devre Dışı Bırakma Alternatifi
Eğer revizyon özelliğini hiç kullanmıyorsanız, tamamen devre dışı bırakarak veritabanınızı daha da hafifletebilirsiniz. Bunun için `wp-config.php` dosyasına aşağıdaki kodu eklemeniz yeterlidir.
define('WP_POST_REVISIONS', false);
Ancak bu adımı atmadan önce, içerik kaybetme riskine karşı bu özelliğe gerçekten ihtiyacınız olup olmadığını dikkatlice düşünmelisiniz.
Snippet 6: WordPress E-postaları İçin Varsayılan Gönderen Adını ve Adresini Değiştirme
WordPress siteniz, yeni kullanıcı kaydı, şifre sıfırlama, yorum bildirimi gibi birçok durumda otomatik e-postalar gönderir. Varsayılan olarak bu e-postalar “WordPress” adıyla ve “wordpress@sitenizinadi.com” gibi bir adresten gönderilir. Bu durum, marka kimliğinizle tutarlı değildir ve profesyonel bir imaj çizmez.
Marka Kimliği İçin Sistem E-postalarını Özelleştirmenin Önemi
Kullanıcılarınızla olan her iletişim noktası, marka kimliğinizi yansıtmalıdır. Sistem e-postalarının gönderen adını sitenizin adıyla ve gönderen adresini de kurumsal bir e-posta adresinizle (örneğin, “iletisim@sitenizinadi.com”) değiştirmek, kullanıcıların gözünde güvenilirliğinizi ve profesyonelliğinizi artırır. Bu, e-postalarınızın spam olarak işaretlenme olasılığını da düşürebilir.
`wp_mail_from` ve `wp_mail_from_name` Filtrelerinin Kullanımı
WordPress, bu varsayılan bilgileri değiştirmek için iki kullanışlı filtre sunar: `wp_mail_from` gönderen e-posta adresini, `wp_mail_from_name` ise gönderen adını kontrol eder. Bu filtreleri kullanarak varsayılan değerleri kolayca kendi istediğiniz değerlerle değiştirebilirsiniz.
Gerekli PHP Kod Bloğu ve Özelleştirme Seçenekleri
Aşağıdaki kodu `functions.php` dosyanıza ekleyerek gönderen bilgilerini özelleştirebilirsiniz. Koddaki ‘info@alanadiniz.com’ ve ‘Sitenizin Adı’ kısımlarını kendi bilgilerinizle güncellemeyi unutmayın.
add_filter('wp_mail_from', 'custom_wp_mail_from');
function custom_wp_mail_from($original_email_address) {
return 'info@alanadiniz.com';
}
add_filter('wp_mail_from_name', 'custom_wp_mail_from_name');
function custom_wp_mail_from_name($original_email_from) {
return 'Sitenizin Adı';
}
Bu kodlar sayesinde, WordPress tarafından gönderilen tüm sistem e-postaları artık sizin belirlediğiniz adres ve isimle gönderilecektir. Bu, özellikle bir wordpress hosting üzerinde e-ticaret sitesi veya üyelik sistemi işletiyorsanız kritik bir öneme sahiptir.
Snippet 7: Gereksiz Üstbilgi (Header) Kodlarını Temizleme
WordPress, sitenizin `
` bölümüne varsayılan olarak bir dizi meta etiketi, link ve script ekler. Bu kodların birçoğu, Windows Live Writer gibi eski blog düzenleme araçları veya Really Simple Discovery (RSD) gibi nadiren kullanılan servisler için gereklidir. Modern web sitelerinin büyük bir kısmı için bu etiketler gereksizdir ve kod karmaşası yaratır.WordPress Tarafından Otomatik Eklenen `head` Etiketleri
WordPress’in otomatik olarak eklediği bazı etiketler şunlardır: WLW Manifest linki, RSD linki, kısa link (shortlink), önceki/sonraki yazı linkleri ve WordPress versiyon numarası. Özellikle versiyon numarasının kaynak kodunda görünür olması, potansiyel bir güvenlik açığı olarak kabul edilir çünkü saldırganlar o versiyona özgü bilinen zafiyetleri hedef alabilir.
`RSD link`, `wlwmanifest`, `shortlink` gibi Etiketleri Kaldırma Kodu
Aşağıdaki kapsamlı kod bloğu, `functions.php` dosyanıza eklendiğinde, sitenizin `
` bölümündeki bu gereksiz kodların çoğunu temizler. Bu işlem, sayfa kaynağınızı daha temiz hale getirir ve potansiyel olarak sayfa yüklenme hızını bir miktar iyileştirir.
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'wp_shortlink_wp_head');
remove_action('wp_head', 'rest_output_link_wp_head');
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('template_redirect', 'rest_output_link_header', 11, 0);
| Etiket / Kod | İşlevi | Neden Kaldırılmalı? |
|---|---|---|
| RSD Link | XML-RPC istemcilerinin blog bilgilerini keşfetmesini sağlar. | Neredeyse hiç kullanılmayan eski bir teknoloji. |
| WLW Manifest Link | Windows Live Writer ile entegrasyon için kullanılır. | Geliştirilmesi durmuş ve artık kullanılmayan bir yazılım. |
| WP Generator | Kullanılan WordPress versiyonunu belirtir. | Bilinen güvenlik açıklarını hedef alan botlar için bilgi sağlar. |
| Shortlink | Yazı için kısa bir URL oluşturur. | Çoğu modern site kalıcı bağlantıları (permalink) kullanır. |
Kod Temizliğinin Güvenlik ve Performansa Katkıları
Bu kodları kaldırmak, sitenizin kaynak kodunu birkaç bayt küçülterek teorik olarak performansı artırır. Ancak asıl faydası güvenlik alanındadır. WordPress versiyon numarasını ve XML-RPC gibi potansiyel saldırı vektörleriyle ilişkili linkleri gizlemek, sitenizi otomatik tarama yapan botlara karşı daha az hedef haline getirir. Temiz bir `
` bölümü aynı zamanda kodda hata ayıklamayı da kolaylaştırır. Performans ve güvenlik odaklı bir hosting altyapısı bu tür optimizasyonlarla birleştiğinde sitenizin genel sağlığına önemli katkılar sağlar.Snippet 8: Otomatik Oluşturulan Resim Boyutlarını Devre Dışı Bırakma
WordPress’e bir resim yüklediğinizde, sistem otomatik olarak bu resmin farklı boyutlarda (küçük, orta, büyük vb.) birkaç kopyasını oluşturur. Bu, tema geliştiricilerinin farklı alanlarda uygun boyutta resimler kullanmasına olanak tanır. Ancak, temanız veya kullandığınız eklentiler tarafından tanımlanan tüm bu boyutları kullanmıyorsanız, bu durum hosting alanınızda gereksiz yer kaplar.
WordPress’in Otomatik Resim Kırpma İşlemi ve Hosting Alanına Etkisi
Yüklediğiniz her bir görsel için 3, 5, hatta bazen 10 farklı kopya oluşturulması, binlerce görsele sahip bir sitede gigabaytlarca gereksiz dosya birikmesi anlamına gelir. Bu, özellikle sınırlı disk alanına sahip vps veya paylaşımlı hosting planlarında sorun yaratabilir. Ayrıca, yedekleme işlemlerinin boyutunu ve süresini de artırır.
İstenmeyen Resim Boyutlarının Üretilmesini Engelleyen Kod
Aşağıdaki kod, WordPress’in varsayılan olarak oluşturduğu bazı resim boyutlarının (`medium_large`, `1536×1536`, `2048×2048`) üretilmesini engeller. Eğer bu boyutları kullanmadığınızdan eminseniz, bu kod disk alanından tasarruf etmenize yardımcı olacaktır.
function remove_default_image_sizes($sizes) {
unset($sizes['medium_large']); // 768px
unset($sizes['1536x1536']); // 2x Medium Large
unset($sizes['2048x2048']); // 2x Large
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_image_sizes');
`intermediate_image_sizes_advanced` Filtresinin Kullanımı
Bu filtre, WordPress’in bir resim yüklendiğinde oluşturacağı tüm boyutların bir listesini içerir. Yukarıdaki fonksiyon, bu listeyi (dizi) alır, `unset()` komutuyla istemediğimiz boyutları listeden çıkarır ve güncellenmiş listeyi geri döndürür. Böylece, WordPress yalnızca kalan boyutlarda kopyalar oluşturur. Sitenizin kullandığı özel boyutları kaldırmamaya dikkat etmelisiniz; aksi takdirde tasarımınızda bozulmalar olabilir.
Snippet 9: Özel Bir Kısa Kod (Shortcode) Oluşturma
Kısa kodlar (shortcodes), WordPress’in en güçlü özelliklerinden biridir. Karmaşık HTML veya PHP kodlarını, yazı düzenleyicisi içine kolayca eklenebilen basit, köşeli parantezli etiketlere (`[kisa_kod]`) dönüştürmenizi sağlar. Bu, tekrar eden içerik parçalarını yönetmeyi ve içerik editörlerinin kod bilmeden dinamik öğeler eklemesini kolaylaştırır.
Kısa Kod Nedir ve İçerik Yönetimini Nasıl Kolaylaştırır?
Örneğin, sitenizin her sayfasının altında güncel yılı göstermek istediğinizi varsayalım. Her yıl bu bilgiyi manuel olarak güncellemek yerine, `[guncel_yil]` adında bir kısa kod oluşturabilirsiniz. WordPress, bu kısa kodu gördüğü her yerde, o anki geçerli yılı otomatik olarak gösterecek olan bir PHP fonksiyonunu çalıştırır. Bu, zamandan tasarruf sağlar ve tutarlılığı artırır.
Güncel Yılı Otomatik Gösteren Bir Kısa Kod Oluşturma
Aşağıdaki kod, `[guncel_yil]` adında basit bir kısa kod oluşturur. Bu kısa kodu bir yazıya, sayfaya veya widget’a eklediğinizde, o anki yıl (örneğin, 2024) görüntülenecektir.
function current_year_shortcode() {
return date('Y');
}
add_shortcode('guncel_yil', 'current_year_shortcode');
`add_shortcode` Fonksiyonu ve Geri Çağırma (Callback) Fonksiyonu Mantığı
Kısa kod oluşturma işlemi iki bölümden oluşur. İlk olarak, kısa kod çağrıldığında çalışacak olan PHP fonksiyonu (`current_year_shortcode`) yazılır. Bu fonksiyona “geri çağırma (callback) fonksiyonu” denir ve görevi, kısa kodun yerine geçecek olan çıktıyı (HTML, metin vb.) üretmektir. Örneğimizde bu fonksiyon, `date(‘Y’)` komutuyla güncel yılı döndürür. İkinci olarak, `add_shortcode()` fonksiyonu kullanılır. Bu fonksiyon iki parametre alır: ilki kısa kodun adı (‘guncel_yil’), ikincisi ise çalıştırılacak olan geri çağırma fonksiyonunun adıdır (‘current_year_shortcode’).
Snippet 10: Kullanıcıları Giriş Yaptıktan Sonra Belirli Bir Sayfaya Yönlendirme
Varsayılan olarak WordPress, bir kullanıcı giriş yaptığında onu yönetim paneline (`/wp-admin`) yönlendirir. Bu, site yöneticileri için mantıklı bir davranıştır. Ancak, bir e-ticaret sitesindeki müşteri veya bir forumdaki üye gibi standart kullanıcılar için yönetim paneli kafa karıştırıcıdır ve genellikle erişimlerine gerek yoktur.
Kullanıcı Deneyimini İyileştirmek İçin Giriş Sonrası Yönlendirmenin Kullanımı
Kullanıcı deneyimini iyileştirmek için, kullanıcıları giriş yaptıktan sonra onlar için daha anlamlı bir sayfaya yönlendirmek iyi bir pratiktir. Örneğin, bir müşteri “Hesabım” sayfasına, bir öğrenci “Kurslarım” paneline veya genel bir abone ana sayfaya yönlendirilebilir. Bu, kullanıcıların sitenizde aradıklarını daha kolay bulmalarını sağlar ve daha akıcı bir deneyim sunar.
Kullanıcıları Belirli Bir URL’ye Yönlendiren Kod
Aşağıdaki kod, giriş yapan tüm kullanıcıları sitenizin ana sayfasına yönlendirir. Kodu, kullanıcıları istediğiniz herhangi bir sayfaya yönlendirmek için `home_url()` kısmını hedef URL ile değiştirerek özelleştirebilirsiniz.
function custom_login_redirect_to_home($redirect_to, $request, $user) {
return home_url();
}
add_filter('login_redirect', 'custom_login_redirect_to_home', 10, 3);
`login_redirect` Filtresi ile Kullanıcı Rolüne Göre Yönlendirme Yapma
Bu yönlendirmeyi daha da akıllı hale getirmek için, kullanıcının rolüne göre farklı sayfalara yönlendirme yapabilirsiniz. `login_redirect` filtresi, `$user` nesnesini parametre olarak alır, bu da bize kullanıcı hakkında rolü gibi bilgilere erişim imkanı tanır. Aşağıdaki daha gelişmiş örnek, yöneticileri yönetim paneline, diğer tüm kullanıcıları ise ana sayfaya yönlendirir.
function role_based_login_redirect($redirect_to, $request, $user) {
if (isset($user->roles) && is_array($user->roles)) {
if (in_array('administrator', $user->roles)) {
return admin_url();
} else {
return home_url();
}
}
return $redirect_to;
}
add_filter('login_redirect', 'role_based_login_redirect', 10, 3);
Gelişmiş WordPress Projeleri İçin Neden İHS Telekom’u Tercih Etmelisiniz?
Bu makalede incelenen `functions.php` özelleştirmeleri, WordPress’in ne kadar esnek ve güçlü bir platform olduğunun sadece küçük bir göstergesidir. Ancak bu tür gelişmiş özelleştirmelerden tam anlamıyla verim alabilmek için, üzerinde çalıştığınız altyapının da aynı derecede güçlü, güvenli ve esnek olması gerekir. İşte bu noktada İHS Telekom, gelişmiş WordPress projeleriniz için ideal bir ortak olarak öne çıkıyor.
Yüksek Performanslı ve Güvenli WordPress Hosting Altyapısı
Özelleştirilmiş bir WordPress sitesi, standart bir blogdan daha fazla sunucu kaynağına ihtiyaç duyabilir. İHS Telekom’un sunduğu yüksek performanslı vds ve bulut sunucu çözümleri, LiteSpeed ve NVMe SSD gibi en son teknolojilerle donatılmıştır. Bu, kod snippet’leriniz ne kadar karmaşık olursa olsun sitenizin her zaman hızlı ve erişilebilir kalmasını sağlar. Ayrıca, gelişmiş güvenlik duvarları ve düzenli güvenlik taramaları, yaptığınız özelleştirmelerin yeni güvenlik açıkları oluşturmasını engellemeye yardımcı olur ve ssl sertifikası ile tam uyumlu çalışır.
Geliştiriciler İçin Sağlanan SSH, WP-CLI ve Git Desteği
İleri düzey bir WordPress geliştiricisi, komut satırı araçlarına erişim olmadan verimli çalışamaz. İHS Telekom, geliştiricilere SSH erişimi, WP-CLI (WordPress Komut Satırı Arayüzü) ve Git versiyon kontrol sistemi gibi profesyonel araçlar sunar. Bu araçlar sayesinde temalarınızı ve eklentilerinizi daha hızlı dağıtabilir, veritabanı işlemlerini otomatikleştirebilir ve bu makaledeki gibi kod değişikliklerini güvenli bir şekilde yönetebilirsiniz. Bir domain alıp projenize başladığınız andan itibaren bu araçlar iş akışınızı hızlandırır.
Kod Snippetleri ve Özelleştirmeler Konusunda Yetkin Teknik Destek Ekibi
En deneyimli geliştiriciler bile zaman zaman beklenmedik sorunlarla karşılaşabilir. `functions.php` dosyasına eklediğiniz bir kodun sitenizi çökertmesi veya bir sunucu yapılandırmasıyla çakışması durumunda, karşınızda konuya hakim bir teknik destek ekibi bulmak paha biçilmezdir. İHS Telekom’un WordPress konusunda uzman teknik destek ekibi, sadece standart hosting sorunlarına değil, aynı zamanda bu tür gelişmiş teknik konulara da aşinadır ve projenizin sorunsuz çalışması için size yol gösterebilir.
