Gereksinimler ve Ön Hazırlık
Bu işlemlere başlamadan önce, sitenizin bir yedeğini almanız hayati önem taşır. Yanlış bir PHP kodu, "beyaz ekran" hatasına neden olabilir. Çalışmalarınızı doğrudan canlı sitede yapmak yerine, yerel bir geliştirme ortamında (LocalWP veya XAMPP gibi) denemenizi öneririz.
- Aktif bir WordPress kurulumu.
- Tema dosyalarına erişim (FTP veya dosya yöneticisi).
- Temel düzeyde PHP, HTML ve CSS bilgisi.
- Bir kod editörü (Visual Studio Code önerilir).
Adım 1: Özel Menü Alanını Kaydetme
WordPress'e yeni bir menü alanı eklemek için öncelikle temanızın functions.php dosyasını düzenlememiz gerekir. Bu adım, WordPress'in "Görünüm > Menüler" kısmında yeni bir konum oluşturmasını sağlar.
// functions.php dosyasına eklenecek kod
function ozel_tema_menulerini_tanimla() {
register_nav_menus( array(
'yan-menu' => __( 'Özel Yan Menü', 'tema-metin-alani' ),
) );
}
add_action( 'init', 'ozel_tema_menulerini_tanimla' );
Bu kod, register_nav_menus fonksiyonunu kullanarak WordPress'e 'yan-menu' adında yeni bir konum ekler. Kodun çalışıp çalışmadığını "Görünüm > Menüler" sekmesine giderek "Menü Konumları" kısmında "Özel Yan Menü" seçeneğini görerek test edebilirsiniz.
Adım 2: Yan Menü Alanını Şablona Ekleme
Menüyü kaydettikten sonra, bu menünün sitenin hangi kısmında görüneceğini belirlememiz gerekir. Genellikle sidebar.php veya header.php dosyasına bu kodu ekleriz. Aşağıdaki kod, oluşturduğumuz menüyü HTML yapısı içine yerleştirir.
Burada wp_nav_menu fonksiyonu, daha önce kaydettiğimiz 'yan-menu' konumunu çağırır. container parametresini false yaparak, WordPress'in otomatik eklediği gereksiz div etiketlerinden kurtuluruz.
Adım 3: CSS ile Tasarımı Şekillendirme
Menünüzü eklediniz ancak şu an düz bir liste gibi görünüyor olabilir. Modern bir yan menü tasarımı için CSS kullanmalıyız. style.css dosyanıza aşağıdaki kodları ekleyerek menünüzü özelleştirebilirsiniz.
.yan-menu-konteyner {
width: 250px;
background: #f4f4f4;
padding: 20px;
}
.ozel-yan-menu-liste {
list-style: none;
padding: 0;
}
.ozel-yan-menu-liste li a {
display: block;
padding: 10px;
color: #333;
text-decoration: none;
border-bottom: 1px solid #ddd;
}
.ozel-yan-menu-liste li a:hover {
background: #e0e0e0;
}
Bu CSS kodları, menüye bir genişlik, arka plan rengi ve hover (üzerine gelindiğinde) efekti kazandırır. Tarayıcınızın geliştirici araçlarını (F12) kullanarak menü öğelerinin sınıflarını kontrol edebilir ve tasarımı ihtiyaçlarınıza göre değiştirebilirsiniz.
Adım 4: Güvenlik ve Performans İpuçları
WordPress geliştirirken güvenlik her zaman önceliklidir. Kullanıcı girdilerini veya dinamik içerikleri ekrana basarken her zaman esc_url veya esc_html gibi fonksiyonları kullanmalısınız. Ayrıca, çok fazla menü sorgusu veritabanı yükünü artırabilir.
Kritik Uyarı: Tema dosyalarında yaptığınız değişiklikler, tema güncellendiğinde kaybolabilir. Bu nedenle mutlaka bir "Child Theme" (Alt Tema) kullanın. Kod güvenliği için doğrudan veritabanı sorguları yerine WordPress'in sunduğu API fonksiyonlarını tercih edin.
Yöntem Karşılaştırması
| Yöntem | Avantajı | Dezavantajı |
|---|---|---|
| PHP ile Manuel Kodlama | Tam kontrol, yüksek performans | Teknik bilgi gerektirir |
| Eklenti Kullanımı | Hızlı ve kolay kurulum | Sitede şişkinlik ve yavaşlama |
Adım 5: Gelişmiş Özellikler - Dinamik Sınıflar
Menünüze daha fazla işlevsellik katmak için PHP kullanarak her menü öğesine özel sınıflar ekleyebilirsiniz. Bu, özellikle her menü öğesinin yanına ikon koymak istediğinizde çok işe yarar.
// functions.php içerisine
add_filter( 'nav_menu_css_class', 'ozel_menu_siniflari', 10, 2 );
function ozel_menu_siniflari( $classes, $item ) {
$classes[] = 'menu-item-' . $item->ID;
return $classes;
}
Bu filtre, her menü öğesine benzersiz bir ID sınıfı atar. Böylece CSS ile her bir menü öğesine özel ikonlar veya farklı renkler atayabilirsiniz.
Sıkça Sorulan Sorular
Yan menü neden görünmüyor?
Öncelikle "Görünüm > Menüler" kısmından bir menü oluşturup, bu menüyü "Özel Yan Menü" konumuna atadığınızdan emin olun. Ayrıca sidebar.php dosyanızın temanızda doğru çağrıldığını kontrol edin.
Mobil cihazlarda menüyü nasıl gizlerim?
CSS'de @media sorgularını kullanarak .yan-menu-konteyner { display: none; } kuralını belirli ekran genişliklerinin altında uygulayabilirsiniz.
Birden fazla yan menü ekleyebilir miyim?
Evet, register_nav_menus dizisine yeni bir anahtar ekleyerek istediğiniz kadar menü konumu tanımlayabilirsiniz.
Kodlarım neden kaydedilmiyor?
Sunucunuzdaki dosya izinlerini kontrol edin veya bir güvenlik eklentisinin dosya düzenlemeyi engellemediğinden emin olun.
Bu yöntem SEO'yu etkiler mi?
Doğru HTML etiketleri (nav, ul, li) kullanıldığı sürece, arama motorları için oldukça temiz ve anlaşılır bir yapı oluşturmuş olursunuz; bu da SEO açısından olumlu bir durumdur.
Özel Yan Menü İçin Performans Optimizasyonu ve Önbellekleme
Özel bir yan menü alanı oluşturduğunuzda, bu menü her sayfa yüklenişinde veritabanından sorgulanır. Eğer menünüz çok fazla öğe içeriyorsa veya karmaşık bir yapıya sahipse, bu durum site hızınızı milisaniyeler düzeyinde de olsa etkileyebilir. WordPress'in sunduğu wp_nav_menu fonksiyonu, varsayılan olarak verimli çalışsa da, büyük ölçekli projelerde Transients API kullanarak menü çıktısını önbelleğe almak mantıklıdır.
Aşağıdaki kod örneği, menü çıktısını veritabanında 12 saat boyunca saklayarak veritabanı sorgu yükünü azaltmanıza yardımcı olur:
function get_cached_sidebar_menu() {
$menu_name = 'ozel-yan-menu';
$cache_key = 'sidebar_menu_cache';
$cached_menu = get_transient($cache_key);
if (false === $cached_menu) {
$cached_menu = wp_nav_menu(array(
'theme_location' => $menu_name,
'echo' => false,
'container' => false
));
set_transient($cache_key, $cached_menu, 12 * HOUR_IN_SECONDS);
}
echo $cached_menu;
}
Hata Ayıklama (Debugging) ve Veri Kontrolü
Yan menünüzle ilgili bir sorun yaşadığınızda veya menü öğeleri beklediğiniz gibi görünmediğinde, WordPress'in sunduğu wp_get_nav_menu_items fonksiyonu ile menü verilerini ham halde inceleyebilirsiniz. Bu, özellikle menüye özel CSS sınıfları veya meta veriler eklediğinizde hata ayıklamayı kolaylaştırır.
Aşağıdaki yardımcı kod bloğu, menünüzdeki öğeleri bir liste halinde dökmenizi sağlar:
function debug_sidebar_menu_items() {
$menu_name = 'ozel-yan-menu';
$locations = get_nav_menu_locations();
$menu_id = $locations[$menu_name];
$menu_items = wp_get_nav_menu_items($menu_id);
echo '';
print_r($menu_items);
echo '';
}
// Sadece geliştirme aşamasında kullanın!
Menü Yapısını Test Etme İpuçları
- Geçersiz Konum Kontrolü:
has_nav_menu('ozel-yan-menu')fonksiyonunu kullanarak menünün tanımlanıp tanımlanmadığını kontrol edin. - CSS Çakışmaları: Tarayıcı konsolunu (F12) açarak menü öğelerinizin üzerine başka bir temanın CSS'inin gelip gelmediğini "Elements" sekmesinden denetleyin.
- Kullanıcı İzinleri: Menü öğelerinin görünürlüğü bazen "Screen Options" (Ekran Tercihleri) kısmındaki "CSS Classes" veya "Link Relationship" gibi seçeneklerin işaretlenmemiş olmasından kaynaklanabilir.
Bu teknikleri uygulayarak, sadece çalışan bir yan menü değil, aynı zamanda ölçeklenebilir ve hata ayıklaması kolay bir WordPress altyapısı kurmuş olursunuz.
Sonuç
WordPress ile özel bir yan menü alanı yapmak, temanızı kişiselleştirmenin en profesyonel yollarından biridir. Bu rehberde öğrendiğiniz PHP kayıt fonksiyonları ve CSS biçimlendirme teknikleri ile artık sitenizin navigasyon yapısını tamamen yönetebilirsiniz. Bir sonraki adım olarak, bu menülere JavaScript ile "açılır-kapanır" (accordion) efektleri ekleyerek kullanıcı deneyimini bir üst seviyeye taşıyabilirsiniz.
Sorumluluk Reddi: Bu rehberdeki kodlar genel eğitim amaçlıdır. Uygulama öncesi sitenizin yedeğini almanız ve kodları canlı ortama almadan önce test etmeniz tavsiye edilir. Hatalı kodlamadan kaynaklanan veri kayıplarından kullanıcı sorumludur.


Yorumlar (0)
Yorum Yaz