Bu sene ikincisi düzenlenen WordPress Günleri Etkinliğinde “WordPress teması geliştirmek & ipuçları” başlıklı konuşmanın tam sunum ekleri ve resim dosyaları hem zip, hem pdf, hem de odp formatında altaki dosyadan indirilebilir. Faydalı olması dileklerimle.
http://www.fatihtoprak.com/wp-gunleri-2014
2. Neler konuşacağız?
1- Tematik yapı nedir ?
(Wordpress temalarına genel bakış)
2- Wordpress temalarının hiyerarşik yapısı.
(Tema dosyalarının işlevleri, temalarda kullanılan teknikler,
özelleştirmeler, filtreler, hooklar vb.)
3- Wordpress temalarının optimizasyonu
(Tema geliştirmesi sonrası hızlı akış ve sunucu
kaynaklarının minimum tüketilmesi / kullanılması ile alakalı
ipuçları)
/ftoprakFatih TOPRAK ~ Freelance Developer
3. Tematik yapı nedir ?
Her wordpress teması aslında bir arayüzden
fazlasıdır.
Fonksiyon, kısakodlar, hook'lar, filtre'ler,
action'lar, hatta kişiselleştirdiğiniz class'lerinizi
çalıştırırlar, barındırırlar.
/ftoprakFatih TOPRAK ~ Freelance Developer
4. Tematik yapı nedir ?
Temalar, resim, stil, javascript, html ve php
dosyalarından oluşur.
Blogunuzun / websitenizin ön yüzüne,
arkaplanda işlevselliğini gerçekleştiren işlemleri
taşımanızı sağlar.
/ftoprakFatih TOPRAK ~ Freelance Developer
5. Tematik yapı nedir ?
Tema geliştirirken, mutlaka kod renklendirme
özelliği bulunan bir editör kullanmanız tavsiye
edilir.
Örnek, Sublime Text 2, Notepad ++ gibi...
/ftoprakFatih TOPRAK ~ Freelance Developer
7. Tematik sistem işleyişi
Tüm sistemin aslında organizasyonu Wordpress
kurulu olan ana dizindeki index.php tarafından
sağlanır. Buna ek olarak,
wp-blog-header.php
.htaccess
dosyaları da konfigürasyona yardımcı olurlar.
/ftoprakFatih TOPRAK ~ Freelance Developer
10. wp-settings.php
Tüm tema ayarlarını barındıran dosyadır. Ve
sayfa çağrıldığında tüm konfigürasyonları
çalıştırmaya başlar.
/ftoprakFatih TOPRAK ~ Freelance Developer
11. wp-settings.php
Aktif tum plugin'lerin ayarları.
Gerekli olan tüm core yapıları.
wp-settings.php tarafından sisteme dahil edilir.
/ftoprakFatih TOPRAK ~ Freelance Developer
12. OOP (Object-Oriented
Programming)
Nesne tabanlı programlama kullanıldığından
Wordpress'i kullanmak oldukça fonksiyoneldir.
Örnek :
$query = new Wp_Query($argumanlar)
$query->parse_query(); gibi.
/ftoprakFatih TOPRAK ~ Freelance Developer
13. OOP (Object-Oriented
Programming)
OOP kullanıcıya özgürlük verdiğinden,
Bazı global değişkensler sayesinde bazıazı global değişkensler sayesinde bazı
varsayılanvarsayılan değerlere heryerden ulaşabiliyoruz vedeğerlere heryerden ulaşabiliyoruz ve
bu operasyonların her anına müdahalebu operasyonların her anına müdahale
edilebiliyor.edilebiliyor.
Örn: insert öncesi - insert işlemi - insert sonrasıÖrn: insert öncesi - insert işlemi - insert sonrası
add_action('publish_post','foo_function')add_action('publish_post','foo_function')
/ftoprakFatih TOPRAK ~ Freelance Developer
15. Hiyerarşi
Temaların kendine özgü hiyerarşik bir yapısı
vardır. Her işlem / alan için parçalanmış bu
hiyerarşik yapı, tema programlamayı
kolaylaştırır.
/ftoprakFatih TOPRAK ~ Freelance Developer
19. Hiyerarşi – header.php / footer.php
Header ve footer dosyalarında sitenin üst ve alt
kısımlarında yer alacak stil, js dosyalarının yanı
sıra, bir HTML çıktısında olması gereken
değerlerde yer alırlar.
/ftoprakFatih TOPRAK ~ Freelance Developer
20. Hiyerarşi – header.php / footer.php
functions.php vb. Fonksiyon ve class
dosyalarınızın bulunabileceği dosyalardan
dönecek hook ve filter'lar bu dosyalar için
konumlandırılabilir.
/ftoprakFatih TOPRAK ~ Freelance Developer
21. Hiyerarşi – index.php
Eğer spesifik olarak oluşturulmamış (page.php,
single.php, archive.php gibi. )bir şablon veya
dosyanız yok ise, tüm kontroller yapılır, ve sonuç
index.php sayfasında gösterilmeye çalışılır.
Örnek 404 fonksiyonu.
/ftoprakFatih TOPRAK ~ Freelance Developer
22. Hiyerarşi – functions.php
Temanızın kalbi diye tanımlanabilir. Bu dosyada
işlenen her türlü filtre, hook, action, veri vb. Wp-
settings.php yordamı ile temanızın header üst
bilgisinden hemen sonra sisteme inject edilir.
/ftoprakFatih TOPRAK ~ Freelance Developer
24. Loop
Wordpress veritabanından alınacak her içeriğin
sistemce ifade edilen karşılığıdır.
Farklı değerler ile kişiselleştirilebilir.
/ftoprakFatih TOPRAK ~ Freelance Developer
26. Loop
Yazıların başlıklarını, özet metinlerini, öne
çıkarılan görsellerini, eklenme ve düzenlenme
tarhlerini vb. Kolaylıkla ön yüzde
gösterebilirsiniz.
/ftoprakFatih TOPRAK ~ Freelance Developer
28. Loop
Birden fazla loop kullanımı, varsayılan loop
kullanımı için kullanılan değerlerle aynı
öznitelikleri taşır ancak, çoklu loop kullanımı için
new wp_query classı tercih edilmelidir.
/ftoprakFatih TOPRAK ~ Freelance Developer
29. Loop
Ve her kullanılan yeni loop sonrası tüm post
dataları yeniden kullanılabilir ve karışıklığın
önlenmesi için sıfır değerine döndürülmesi
gerekir.
wp_reset_post_data()
/ftoprakFatih TOPRAK ~ Freelance Developer
32. Actions API
Yapıya, bir işlem yapılırken yeni bir işlem
yapılmasını sağlamak amacı ile action metodları
ile oluşturduğunuz fonksiyonlar, dahil edilir.
add_action('delete_post','foo_func');
add_action('after_setup_theme','foo_func');
/ftoprakFatih TOPRAK ~ Freelance Developer
33. Filters API
Yapıda var olana ek yeni özellikler dahil etmek,
yeni ekleri iliştirmek için filter metodları kullanılır.
add_filter('the_content','foo_func');
/ftoprakFatih TOPRAK ~ Freelance Developer
35. Theme Options
Temaların kolaylıkla kullanıcılar tarafından
kişiselleştirilebilmesi için tema ayar paneli
kullanılabilir.
Bunlar için themeforest'den hazır yazılmış
frameworkleri satın alabilir, codex sayfalarından
detaylı dökümantasyon edinebilirsiniz.
/ftoprakFatih TOPRAK ~ Freelance Developer
37. Optimizasyon
Array' ler ile oluşturulmuş çıktıları kullanarak
temalarınızı geliştirin.
Örnek : get_options dan gelen tüm değerleri tek
tek almak yerine tamamını bir dizi içine sıralayıp
kullanmak daha performedir.
/ftoprakFatih TOPRAK ~ Freelance Developer
38. Optimizasyon
Stil ve javascript dosyalarını header kalıbınıza
manuel eklemek yerine, wp_register_script()
metodlarını kullanın.
Örnek : Wp minify , WP Super Cache eklentileri
sadece register edilmiş scriptleri combine etme
olanağı sağlar.
/ftoprakFatih TOPRAK ~ Freelance Developer
39. Optimizasyon
Daha hızlı açılan sayfalar için, geliştirilmiş
kısmen Cache eklentileri kullanabilirsiniz.
Buna ek olarak, memcache, ngnix, ile konfigüre
edilmiş sunucular daha başarılı sonuçlar
almanızı sağlar.
/ftoprakFatih TOPRAK ~ Freelance Developer
41. Transients API
Bir çok eklenti de aslında, bu geçici bellekleme
komplikasyonunu kullanır.
/ftoprakFatih TOPRAK ~ Freelance Developer
42. Transients API
Sorgularınızın belleklenmesi ve sistem
kaynaklarının kullanımının en aza indirgenmesi
için geliştirilmiş karışık gibi görünse de aslında
çok faydalı API yapısıdır.
set_transient( 'bellekAd', $sorgu 12 * 60 );
/ftoprakFatih TOPRAK ~ Freelance Developer