Diğer eğitim projelerimize baktınız mı ? KolayBiyoloji.com KolayFizik.com KolayMatematik.com
WordPress Tema Sayfa ve Tekil Gönderi Şablonları (page.php ve single.php)
WordPress içerikleri sadece blog yazılarından ibaret değildir. Kullanıcılar özel sayfalar (hakkımızda, iletişim vb.) ve tekil yazılar (her bir blog yazısı) gibi farklı içerik türlerini görmek ister.
Bu yazıda single.php ve page.php dosyalarını oluşturmayı ve özelleştirmeyi öğreneceğiz.
🚀 Bu Yazıda Öğreneceklerimiz
single.phpvepage.phpdosyalarının farkları- Tekil yazı (post) şablonunun nasıl özelleştirileceği
- Sayfa (page) şablonunun nasıl görüneceği
- Özel alan (custom field) desteği için ACF tanıtımı (isteğe bağlı)
📁 1. WordPress Şablon Hiyerarşisi
WordPress, içerikleri göstermek için şablon hiyerarşisi uygular. Temel mantık şu şekildedir:
| İçerik Türü | Kullanılan Dosya |
|---|---|
| Ana Sayfa | home.php → index.php |
| Blog Yazısı | single.php → index.php |
| Sayfa | page.php → index.php |
| Kategori | category.php → archive.php → index.php |
Bu yüzden temanızda single.php ve page.php dosyalarını oluşturmanız, içeriğin daha iyi kontrolünü sağlar.
📄 2. Tekil Yazı Şablonu: single.php
Yeni bir dosya oluştur:
/wp-content/themes/benim-temam/single.php
Ve şu yapıyı ekleyin:
<?php get_header(); ?>
<main class="icerik">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<article class="tekil-yazi">
<h1><?php the_title(); ?></h1>
<div class="yazi-icerik"><?php the_content(); ?></div>
</article>
<?php endwhile; endif; ?>
</main>
<?php get_footer(); ?>
📝 Ek Bilgiler:
<p class="yazi-detay">
Yayın tarihi: <?php the_time('d M Y'); ?> <br>
Yazar: <?php the_author(); ?> <br>
Kategoriler: <?php the_category(', '); ?>
</p>
🧾 3. Sayfa Şablonu: page.php
Yeni bir dosya oluştur:
/wp-content/themes/benim-temam/page.php
İçeriği şu şekilde olabilir:
<?php get_header(); ?>
<main class="sayfa">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<article class="sayfa-icerik">
<h1><?php the_title(); ?></h1>
<div><?php the_content(); ?></div>
</article>
<?php endwhile; endif; ?>
</main>
<?php get_footer(); ?>
🧠 Farkı Nedir?
page.php, sabit sayfalar (Hakkımızda, İletişim) için kullanılır.single.php, blog yazıları gibi “post” türü içerikler için kullanılır.
🌟 4. Opsiyonel: ACF ile Özel Alan Kullanımı
Eğer sayfalara veya yazılara özel içerik alanları eklemek istiyorsan, Advanced Custom Fields (ACF) eklentisini kullanabilirsin.
🔧 Örnek: Öne Çıkan Renk Alanı
- ACF ile yeni bir “renk” alanı oluştur.
page.phpveyasingle.phpdosyasına şu kodu ekle:
<?php $renk = get_field('renk'); ?>
<div style="background-color: <?php echo $renk; ?>;">
<!-- İçerik -->
</div>
get_field()fonksiyonu ACF ile tanımlanan özel alanlara erişir.
🎨 Basit CSS Önerisi
.tekil-yazi, .sayfa-icerik {
max-width: 800px;
margin: 0 auto;
padding: 30px;
}
.tekil-yazi h1, .sayfa-icerik h1 {
font-size: 30px;
margin-bottom: 20px;
}
✅ Özet
Bu bölümde:
single.phpile blog yazısı sayfası oluşturmayıpage.phpile statik sayfa görünümünü kontrol etmeyi- ACF ile özel alan eklemeyi öğrendik
Böylece WordPress içeriklerinin her türü için özel şablonlar oluşturabiliyoruz. Artık ziyaretçiler sadece listeleri değil, detay sayfalarını da özelleştirilmiş şekilde görebiliyor!
🚀 Sonraki Yazı: Navigasyon Menüsü ve Widget Alanları (Devam)
Bir sonraki yazıda:
- Menülerimizi görsel hale getireceğiz
- Dinamik sidebar ve footer alanlarını daha detaylı yapılandıracağız
- Özelleştirilebilir menü yapısı ve çoklu menü bölgeleri oluşturacağız