Hizmetler Hosting & Sunucu Araçlar Blog Ara Kurumsal EnglishEN
Teklif Alın

Bir WordPress temasını çalışır hale getirmek için CSS yazmadan önce atılması gereken bir adım vardır: style.css dosyasının en başına doğru formatta bir yorum bloğu eklemek. WordPress bu bloğu okumadan temanızı hiç tanımaz — CSS'in geri kalanı ne kadar doğru yazılmış olursa olsun fark etmez. Bu yazıda bu header'ın nasıl çalıştığını, hangi alanların ne işe yaradığını, child theme oluştururken nelere dikkat edilmesi gerektiğini ve sık yapılan hataları ele alıyoruz.

WordPress Bir Temayı Nasıl Tanır?

WordPress bir temayı tanımak için wp-content/themes/ altındaki her klasörü tarar ve içindeki style.css dosyasının en başında bu yorum bloğunu arar. Blok orada değilse ya da Theme Name alanı boşsa, WordPress o klasörü geçerli bir tema olarak görmez ve Görünüm > Temalar ekranında listelemez. Önemli olan nokta şu: WordPress dosyanın CSS içeriğinin geri kalanıyla ilgilenmez, sadece bu üstbilgiyi tarar. Yani teknik olarak geçersiz CSS içeren ama header'ı doğru olan bir style.css, tema olarak tanınmaya devam eder.

Somut bir örnek üzerinden gidelim: wp-content/themes/vitrin-tema/ klasöründe bir style.css dosyası oluşturduğunuzu, ancak dosyanın en başına yanlışlıkla bir @charset "UTF-8"; satırı ya da açıklama amaçlı sıradan bir CSS yorumu koyduğunuzu düşünün. Header bloğu bu satırın hemen ardından, dosyanın ikinci satırında başlıyor olsa bile WordPress temayı tanımaz, çünkü tarama işlemi dosyanın tam olarak ilk satırından başlar. Aynı header, dosyanın gerçekten ilk satırına taşındığında sorun anında çözülür.

style.css Header Alanları

AlanZorunlu muNe işe yarar
Theme NameEvetTemanın tanınması için tek zorunlu alan; Temalar ekranında görünen isimdir
Theme URIHayırTemanın tanıtım sayfasına bağlantı verir
AuthorHayırYazar adını gösterir
Author URIHayırYazar adına tıklandığında açılacak bağlantıdır
DescriptionHayırTemalar ekranındaki açıklama metnidir
VersionHayırSürüm numarasını gösterir
Requires at leastHayırTemanın çalışması için gereken minimum WordPress sürümünü belirtir
Requires PHPHayırTemanın çalışması için gereken minimum PHP sürümünü belirtir
LicenseHayırLisans türünü gösterir
License URIHayırLisans metnine bağlantı verir
Text DomainHayırÇeviri dizelerinin eşleştiği kimliktir; i18n için gereklidir
TemplateSadece child theme'deEbeveyn temanın klasör adını belirtir; child theme'in hangi temadan miras alacağını tanımlar

Tam Kod Örneği

/*
Theme Name:        My Custom Theme
Theme URI:         https://example.com/my-custom-theme
Author:            Your Name
Author URI:        https://example.com
Description:       A clean, custom WordPress theme.
Version:           1.0.0
Requires at least: 6.0
Requires PHP:      7.4
License:           GPL v2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       my-custom-theme
*/

Requires at least ve Requires PHP: Uyumluluk Kontrolü

Requires at least ve Requires PHP alanları, WordPress'in kurulu sürümle temanın uyumluluğunu otomatik olarak kontrol etmesini sağlar. Site bu gereksinimleri karşılamıyorsa WordPress temayı Temalar ekranında uyumsuz olarak işaretler ve etkinleştirmeyi engeller. Bu mekanizma, eski bir PHP sürümünde çalışan ya da güncellenmemiş bir WordPress kurulumunda kullanıcının bilmeden temayı etkinleştirip bozuk bir siteyle baş başa kalmasını önler.

Bilgi
Bu iki alan opsiyoneldir; belirtilmezse WordPress herhangi bir minimum sürüm kontrolü yapmaz. Ancak temanız belirli fonksiyonlara (ör. belirli bir PHP sürümünden itibaren gelen dil özellikleri) bağımlıysa bu alanları doldurmak, kullanıcıyı uyumsuz bir ortamda temayı etkinleştirmekten korur.

Child Theme ve Template Satırı

Bir child theme (alt tema) oluşturuyorsanız, header'a ayrıca ebeveyn temanın klasör adını gösteren bir Template: satırı eklemeniz gerekir. Örneğin ebeveyn tema wp-content/themes/twentytwentyfour klasöründeyse, child theme'in style.css dosyasına Template: twentytwentyfour satırını eklersiniz. WordPress bu satırla hangi temadan miras alınacağını anlar; child theme'in kendi style.css dosyası ebeveynin CSS'ini geçersiz kılmak için kullanılırken, PHP şablon dosyaları da yine bu satır sayesinde ebeveyn temadan devralınır.

Uyarı
Template: satırı, ebeveyn temanın gösterilen adı (Theme Name) değil, klasör adıdır. Bu iki değer genellikle farklı yazılır; klasör adını kullanmak yerine görünen adı yazmak, WordPress'in ebeveyn temayı bulamamasına yol açar.

Child theme yaklaşımının pratikteki değeri şuradan gelir: bir temayı doğrudan düzenlemek yerine, üzerine kurulu ayrı bir klasörde çalışırsınız. Değişiklikleriniz child theme'in kendi dosyalarında durur, ebeveyn temanın dosyalarına dokunulmaz. Template: satırı bu ilişkiyi kurduğu için, ebeveyn temada eksik olan her şablon dosyası, fonksiyon veya stil otomatik olarak ebeveynden devralınır; siz sadece değiştirmek istediğiniz kısımları child theme içinde yeniden tanımlarsınız.

Text Domain ve Çeviri Eşleşmesi

Text Domain, temadaki load_theme_textdomain() çağrısında ve tüm __() / _e() çeviri fonksiyonlarında kullanılan değerle birebir aynı olmalıdır. Bu iki değer eşleşmediğinde WordPress doğru .mo çeviri dosyasını bulamaz ve arayüz her zaman orijinal, genellikle İngilizce metinle görünür. Bu hata da Text Domain uyumsuzluklarında olduğu gibi herhangi bir hata mesajı üretmez; sadece çeviriler sessizce devre dışı kalır.

Sık Yapılan Hatalar

  • Header dosyanın en başında değil: Blok, style.css dosyasının gerçekten ilk satırında olmalıdır. Öncesinde bir @charset kuralı, boş satır ya da başka bir yorum bulunursa WordPress bloğu tanımayabilir ve temayı listelemez.
  • Theme Name eksik: Diğer tüm alanlar doğru olsa bile Theme Name boşsa WordPress klasörü geçerli bir tema olarak görmez.
  • Child theme'de Template satırının unutulması: Bu satır eksik kalırsa WordPress child theme'i bağımsız, kendi başına ayakta duran bir tema olarak değerlendirir; ebeveyn temadan hiçbir şablon dosyası devralınmaz ve site genellikle bozuk görünür.
  • Text Domain uyumsuzluğu: Header'daki değer ile çeviri fonksiyonlarında kullanılan slug tutmuyorsa çeviriler sessizce çalışmaz, herhangi bir hata görülmez.

Header'daki alanları elle yazmak, özellikle child theme'lerde Template satırının klasör adıyla birebir eşleşmesi gerektiği için hataya açıktır. Aşağıdaki araç, gerekli alanları doğru formatta oluşturmanıza yardımcı olur.

WhatsApp