Wordpress tema yapmak oldukça kolaydır. Zor olan, Themeforest'ta satılabilecek tema yapmaktır.
Yaptığınız tema zaten olayı çözdüğünüzü anlatıyor. Wordpress, hazır bir php ve mysql yapısıdır. Tema ise basitleştirilmiş kodlar sayesinde, yazılımdaki php kodlara ulaşarak veritabanından gerekli verileri çekmeye yarar. Örneğin Wp'de, site başlığını veritabanına yazan php kodlar vardır. Temaya eklenilen kodla bu veri, veritabanından çekilir. Normalde onlarca kod yazmak gerekirken, basit bir wp_title ile başlığı getiririz. Yaptığınız temada bu kodları kullanmışsınız. Olay bundan ibaret zaten.
İkinci aşama hayal etmek. WP bir blog yazılımı aslında. Ama bir video sitesi yapmak da mümkün. Yeter ki temada kullanılacak kodları bilelim. Mesela video sitesinin anasayfasında video resimleri olmalı. Bunu Wp, thumbnails ile sağlıyor. Yazıya eklenen bir resmi istediğimiz boyutlarda keserek sunucuda saklıyabiliyoruz. Mesela anasayfada 120*120 boyutunda resimler göstereceksek, funcstions.php'ye eklenecek bir kodla yüklenen her resmin 120*120 boyutundaki halinin de saklanmasını sağlayabiliyoruz. Ama bu kodu nereden bulacağız? Wp ile ilgili milyonlarca sorunun cevabı var İnternet'te. Stackoverflow bu konuda artık lider. Binlerce blog da var. Akla gelebilecek her sorunun cevabı var. Mesela aratalım: "wordpress thumbnail sizes" diye arattık. Birçok cevap çıktı. Öğrendik ki, functions.php dosyasına bir kod ekleniyormuş. Bu kod ile resmin boyutu belirleniyormuş. Sonra bir kodla da resmi temada çağırıyormuşuz. İngilizce bilmek lazım tabii. Ama translate kullanarak da cevaplara ulaşmak mümkün.
Ben tema yapmayı, Wp'nin temel teması olan "default" temayı inceleyerek öğrenmiştim. Temadaki dosyalara baktım. style.css'deki kodlar değişince görsellik değişiyor, php dosyalarda üst, alt, anasayfa gibi alanlar varmış. Sonra php dosyalardaki php kodlara baktım. Basit kodlarla başlık, içerik, tarih, vs çağrılıyormuş. İlk temamı 2-3 günde yapmıştım bu sayede. Başlarken sıfır css ve php bilgim vardı. Kopyala yapıştırla tema yapmak mümkün.
"Default" temanın yerine şimdiki temalar geldi. Default tema olağanüstü basitti. 2 saatte tema yapmayı öğreniyordu insan. Şimdi Twenty Twenty-Two gibi karışık temaları kullanıyor. Aslında alt yapı aynı ama Twenty Twenty-Two'ya bakarak tema yapmayı öğrenmek çok kolay değil. Yine de en iyi kaynak bunlar.
Tema yapımı video izleyerek ya da okuyarak olmaz. Bir tema tasarlayıp, onu yapmaya çalışmalısınız. Takıldığınız yerde araştırma yapmanız lazım. Şimdi 1 saat alır, 1 ay sonra 15 dakikada bulursunuz cevabı. Ama bazen 2,5 saat uğraşırsınız. Bu iş böyle. Hiçkimse, hiç bir Udemy kursu, hiçbir video size, işinize yarabilecek tüm kodları veremez. Mesela, "Bir oyun temasında, bir oyunun yer aldığı post'un sidebar'ında, bulunan posttan önce eklenmiş 3 post'u ve sonra yazılmış 3 post'u resimleriyle göster". Cevabı forumlarda var.
Siz o aşamayı geçmişsiniz ama yeni başlayanlar için şu aşamaları takip etmek faydalı olacaktır:
1- Wordpress Default temayı indirin (Wordpress 4 ve önceki sürümlerde vardı sanırım. Adı "Default"). Bu temadaki style.css ve php dosyalarını inceleyince bir temanın ne olduğu anlaşılır.
2- Güncel, basit bir tema indirilir. "Simple Wordpress Themes" gibi bir aramayla. 2 kolonlu bir tema yeterli. Basit bir blog teması olmalı. Bu tema incelenir. Kodlar değiştirilir, vs.
3- Twenty Twenty-Two teması incelenir.
4- Bir oyun teması yapmaya çalışılır. Karşılaşılan her sorunun cevabı İnternet'te var.
Css, js ve php bilginiz artınca, Themeforest'ta yer alabilecek tema yapmanız da mümkün. Bu temaları ben sevmiyorum ama temadan para kazanmak için mecburen böyle temalar yapmak lazım. Bu temaların özelliği, binlerce ıvır zıvır özelliğe sahip olmaları. Wp'nin çekirdek yapısında yer almayan yeni fonksiyonlar eklemeleri. Aslında Wp'ye ek php kodlar ekliyorlar.
Kendinize tema yapmak istiyorsanız, söylediğim Default temayı öğrenmeniz işinizi görür. Tabii bazı kodlar değişti ama işin mantığını anlayınca istediğiniz her siteyi yapabilirsiniz. Hele de Bootstrap biliyorsanız, işiniz çok kolaylaşır. Mesela ben Twenty tema serisini hiç incelemedim. Hala temel kodlarla istediğim siteyi yapabiliyorum.