WordPress Tema functions.php ile Menü ve Widget Alanları Oluşturmak 

functions.php ile Menü & Widget Alanları Oluşturmak

WordPress temanızın işlevselliğini artırmak için functions.php dosyası oldukça önemli bir rol oynar. Bu dosya üzerinden dinamik menülerwidget alanlarıstil ve script dosyalarının yüklenmesi gibi birçok işlemi gerçekleştirebilirsiniz.

Bu yazıda şunları öğreneceğiz:

  • Dinamik menü tanımlama (register_nav_menus)
  • Menüleri tema dosyalarında göstermek (wp_nav_menu)
  • Widget alanı (sidebar, footer) tanımlama ve kullanma
  • Gerçek örnek kodlar ile uygulama

📁 1. functions.php Dosyasını Tanımak

functions.php, WordPress temanızın “beyni” gibidir. PHP ile çeşitli işlevler tanımlayabilir, WordPress’in varsayılan özelliklerini özelleştirebilirsiniz.

Eğer henüz functions.php dosyanız yoksa, tema klasörünüzün içine yeni bir dosya oluşturun:

/wp-content/themes/benim-temam/functions.php

Ve içine başlangıç olarak şunu ekleyin:

<?php
// Temaya özel işlemler burada olacak

🍔 2. Navigasyon Menüsü Tanımlama

📌 Menüleri Temaya Tanıtmak

function benim_temam_menuler() {
    register_nav_menus([
        'ust_menu' => 'Üst Menü',
        'alt_menu' => 'Alt Menü'
    ]);
}
add_action('after_setup_theme', 'benim_temam_menuler');

Bu kod ile WordPress admin panelinde Görünüm > Menüler kısmında iki farklı menü tanımlanabilir hâle gelir.

📌 Menüleri Temada Göstermek

Örneğin header.php dosyanızda üst menüyü göstermek için şunu kullanabilirsiniz:

<?php
wp_nav_menu([
    'theme_location' => 'ust_menu',
    'container' => 'nav',
    'menu_class' => 'ust-menu'
]);
?>

Alt menü için (örneğin footer.php) benzeri bir kullanım:

<?php
wp_nav_menu([
    'theme_location' => 'alt_menu',
    'container' => 'nav',
    'menu_class' => 'alt-menu'
]);
?>

🧱 3. Widget Alanı (Sidebar ve Footer)

📌 Widget Alanlarını Kaydetmek

function benim_temam_widget_alani() {
    register_sidebar([
        'name'          => 'Ana Sidebar',
        'id'            => 'ana_sidebar',
        'before_widget' => '<div class="widget">',
        'after_widget'  => '</div>',
        'before_title'  => '<h3>',
        'after_title'   => '</h3>',
    ]);

    register_sidebar([
        'name'          => 'Footer Alanı',
        'id'            => 'footer_widget',
        'before_widget' => '<div class="footer-widget">',
        'after_widget'  => '</div>',
        'before_title'  => '<h4>',
        'after_title'   => '</h4>',
    ]);
}
add_action('widgets_init', 'benim_temam_widget_alani');

📌 Widget Alanlarını Tema Dosyasında Kullanmak

Sidebar için (sidebar.php)

<?php if (is_active_sidebar('ana_sidebar')) : ?>
    <aside class="sidebar">
        <?php dynamic_sidebar('ana_sidebar'); ?>
    </aside>
<?php endif; ?>

Footer için (footer.php)

<?php if (is_active_sidebar('footer_widget')) : ?>
    <div class="footer-widgets">
        <?php dynamic_sidebar('footer_widget'); ?>
    </div>
<?php endif; ?>

🎁 Bonus: Stil ve Script Dosyası Eklemek

Aynı functions.php içinde aşağıdaki gibi stil ve script dosyalarını düzgün biçimde ekleyebilirsin:

function benim_temam_dosyalar() {
    wp_enqueue_style('benim-temam-style', get_stylesheet_uri());
    wp_enqueue_style('google-fonts', 'https://fonts.googleapis.com/css2?family=Inter&display=swap');

    wp_enqueue_script('benim-temam-js', get_template_directory_uri() . '/assets/js/main.js', [], false, true);
}
add_action('wp_enqueue_scripts', 'benim_temam_dosyalar');

✅ Özet

Bu bölümde functions.php dosyası aracılığıyla:

  • Temaya özel menü alanları tanımladık
  • Menüleri tema içinde çağırdık
  • Widget alanları oluşturduk ve tema içinde yerleştirdik
  • Stil ve script dosyalarını uygun şekilde ekledik

🚀 Sonraki Yazı: WordPress Döngüsü ve Blog Yazılarını Listeleme

Bir sonraki yazıda şunları öğreneceğiz:

  • WordPress’in meşhur The Loop yapısı nedir?
  • Blog yazılarını nasıl listeleriz?
  • the_title()the_content()the_excerpt() fonksiyonlarının kullanımı

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir