WordPress’i herkes “bir tema kur, eklenti yükle, yazı yaz” sanıyor. Ama alt katmanda, bilinmeyen çok güçlü özellikler, devre dışı bırakılmış yetenekler ve gizli ayarlar var.
Eğer bir adım öne geçmek istiyorsan, bu bilinmesi gerekenleri mutlaka oku ve uygula!
🔍 1. WordPress’in wp-config.php
Dosyası Sadece Ayar Dosyası Değildir!
Geliştirici Hack’leri:
🔒 WP Yönetim Paneline IP Kısıtlaması:
if ($_SERVER['REMOTE_ADDR'] !== '111.222.333.444') {
die('Yetkisiz giriş');
}
🔍 Hataları Açma / Kapatma:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true); // wp-content/debug.log
🚀 Otomatik Kaydetme Süresini Uzat:
define('AUTOSAVE_INTERVAL', 300 ); // 5 dakika
🔁 Revisions (sürüm geçmişi) sayısını sınırla:
define('WP_POST_REVISIONS', 5 );
🧩 2. WordPress’te Gerçek Zamanlı “Transients API” Kullanımı
Çoğu kişi bilmez: Transients API, önbellekleme ve geçici veri saklama için mükemmeldir. Özellikle API verisi çekerken:
$data = get_transient('guncel_doviz_kurlari');
if (!$data) {
$response = wp_remote_get('https://api.ex.com/rates');
$data = wp_remote_retrieve_body($response);
set_transient('guncel_doviz_kurlari', $data, 60 * 30); // 30 dakikalık cache
}
echo $data;
⚙️ 3. mu-plugins
Klasörü: Hiç Değiştirilemeyen Gizli Eklenti Alanı
WordPress’te wp-content/mu-plugins/
klasörü özel bir alandır.
Buraya attığın PHP dosyaları silinebilir, devre dışı bırakılabilir değildir – otomatik ve zorunlu olarak çalışır!
🔥 Kritik kullanım: Lisans sistemi, güvenlik kalkanı veya admin paneli gizleme gibi kodlar için birebir!
🛡️ 4. REST API’yi Sadece Adminlere Açmak
WordPress’in REST API’si dışarıya tüm içerik verilerini sunar.
Hacker’ların açık aradığı yer burası olabilir:
add_filter('rest_authentication_errors', function($result) {
if (!is_user_logged_in()) {
return new WP_Error('rest_cannot_access', 'REST API sadece giriş yapanlara açıktır.', ['status' => 401]);
}
return $result;
});
🔒 5. Kendi Admin Login URL’ni Belirle (Kodla, Eklentisiz!)
add_action('init', function(){
if ($_SERVER['REQUEST_URI'] == '/gizlipanel') {
require_once(ABSPATH . 'wp-login.php');
exit;
}
});
🧠 6. wp_cron
Aslında Gerçek Cron Değildir!
WordPress’in zamanlayıcı sistemi, siteye biri girdiğinde çalışır.
Ama düşük trafikli sitelerde bu görevler çalışmaz.
💡 Çözüm: wp-cron’u devre dışı bırak ve sunucudan gerçek cron ayarla.
wp-config.php
içine:
define('DISABLE_WP_CRON', true);
Sonra cPanel → Cron →
bashKopyalaDüzenle*/5 * * * * wget -q -O - https://seninsite.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
📁 7. functions.php
yerine Kendi Minik Plugin’inizi Yazın
functions.php
sadece tema aktifken çalışır. Ama eklenti globaldir.
1. wp-content/plugins/ozel-fonksiyonlar.php
<?php
/*
Plugin Name: Cantürk Tools
*/
add_action('wp_footer', function(){
echo '<!-- Footer’a özel kod eklendi -->';
});
2. WordPress panelinden aktif et!
🐌 8. Admin Panelinde Kullanıcıya Göre Alan Gizleme
add_action('admin_menu', function() {
if (!current_user_can('administrator')) {
remove_menu_page('tools.php');
remove_menu_page('plugins.php');
}
});
📸 9. Media Library’ye SVG Desteği (Gizli ve Güvenlikli)
function svg_upload_allow($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'svg_upload_allow');
🕵️ 10. Kimin Hangi Sayfada Olduğunu Anlık Gör (Admin Panelde Mini Takip)
add_action('admin_bar_menu', function($wp_admin_bar){
if (is_user_logged_in()) {
$current = wp_get_current_user();
$wp_admin_bar->add_node([
'id' => 'user-activity',
'title' => 'Hoş geldin ' . $current->display_name,
]);
}
}, 100);
🎯 Sonuç:
WordPress, yüzeyde basit görünebilir; ama çekirdeğinde tam anlamıyla bir geliştirici cenneti yatıyor.
Bu yazıda öğrendiğin bilgiler sayesinde artık sadece bir “WordPress kullanıcısı” değil, gerçek bir WordPress uzmanı olma yolundasın.