Diğer eğitim projelerimize baktınız mı ? KolayBiyoloji.com KolayFizik.com KolayMatematik.com
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üler, widget 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ı