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.php ve page.php dosyaları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 Sayfahome.php → index.php
Blog Yazısısingle.php → index.php
Sayfapage.php → index.php
Kategoricategory.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ı

  1. ACF ile yeni bir “renk” alanı oluştur.
  2. page.php veya single.php dosyası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.php ile blog yazısı sayfası oluşturmayı
  • page.php ile 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

Bir Yorum Yazın

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