wpgunleri 2014 fatihtoprak.com
DESCRIPTION
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-2014TRANSCRIPT
Wordpress teması geliştirmek
& ipuçları
/ftoprakFatih TOPRAK ~ Freelance Developer
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
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
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
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
İşleyiş
/ftoprakFatih TOPRAK ~ Freelance Developer
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
wp-blog-header.php
Bu dosya,
wp-load.phpwp-includes/template-loader.php
dosyalarını tetikler.
/ftoprakFatih TOPRAK ~ Freelance Developer
wp-load.php
wp-load.php -> wp-config.phpwp-config.php -> wp-settings.php
/ftoprakFatih TOPRAK ~ Freelance Developer
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
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
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
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 ve değerlere heryerden ulaşabiliyoruz ve bu operasyonların her anına müdahale bu 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
Tema Hiyerarşisi
/ftoprakFatih TOPRAK ~ Freelance Developer
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
Hiyerarşi
header.phpindex.phpsidebar.phpfooter.phppage.phpsingle.phparchive.phpcategory.phpsearch.phpstyle.css
/ftoprakFatih TOPRAK ~ Freelance Developer
comments.phpfunctions.phpscreenshoot.png
İsteğe bağlı olarak ;
loop.php, loop-etc.php vb.taxonomy.phppost-type-simgle.phptax-taxonomy.php etc.
/ftoprakFatih TOPRAK ~ Freelance Developer
/ftoprakFatih TOPRAK ~ Freelance Developer
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
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
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
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
Loop (Döngü)
/ftoprakFatih TOPRAK ~ Freelance Developer
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
/ftoprakFatih TOPRAK ~ Freelance Developer
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
Loop
Çoklu loop kullanımı nasıl olmalıdır ?
/ftoprakFatih TOPRAK ~ Freelance Developer
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
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
/ftoprakFatih TOPRAK ~ Freelance Developer
HOOKSActions / Filters
/ftoprakFatih TOPRAK ~ Freelance Developer
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
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
Theme Options
/ftoprakFatih TOPRAK ~ Freelance Developer
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
Optimizasyon
/ftoprakFatih TOPRAK ~ Freelance Developer
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
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
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
Transients API
/ftoprakFatih TOPRAK ~ Freelance Developer
Transients API
Bir çok eklenti de aslında, bu geçici bellekleme komplikasyonunu kullanır.
/ftoprakFatih TOPRAK ~ Freelance Developer
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
Transients API
/ftoprakFatih TOPRAK ~ Freelance Developer
Teşekkürler :)
http://fatihtoprak.com/wp-gunleri-2014
/ftoprakFatih TOPRAK ~ Freelance Developer