wpgunleri 2014 fatihtoprak.com

44
Wordpress teması geliştirmek & ipuçları /ftoprak Fatih TOPRAK ~ Freelance Developer

Upload: fatih-toprak

Post on 24-May-2015

665 views

Category:

Education


3 download

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-2014

TRANSCRIPT

Page 1: Wpgunleri 2014 fatihtoprak.com

Wordpress teması geliştirmek

& ipuçları

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 2: Wpgunleri 2014 fatihtoprak.com

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

Page 3: Wpgunleri 2014 fatihtoprak.com

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

Page 4: Wpgunleri 2014 fatihtoprak.com

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

Page 5: Wpgunleri 2014 fatihtoprak.com

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

Page 6: Wpgunleri 2014 fatihtoprak.com

İşleyiş

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 7: Wpgunleri 2014 fatihtoprak.com

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

Page 8: Wpgunleri 2014 fatihtoprak.com

wp-blog-header.php

Bu dosya,

wp-load.phpwp-includes/template-loader.php

dosyalarını tetikler.

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 9: Wpgunleri 2014 fatihtoprak.com

wp-load.php

wp-load.php -> wp-config.phpwp-config.php -> wp-settings.php

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 10: Wpgunleri 2014 fatihtoprak.com

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

Page 11: Wpgunleri 2014 fatihtoprak.com

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

Page 12: Wpgunleri 2014 fatihtoprak.com

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

Page 13: Wpgunleri 2014 fatihtoprak.com

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

Page 14: Wpgunleri 2014 fatihtoprak.com

Tema Hiyerarşisi

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 15: Wpgunleri 2014 fatihtoprak.com

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

Page 16: Wpgunleri 2014 fatihtoprak.com

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.

Page 17: Wpgunleri 2014 fatihtoprak.com

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 18: Wpgunleri 2014 fatihtoprak.com

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 19: Wpgunleri 2014 fatihtoprak.com

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

Page 20: Wpgunleri 2014 fatihtoprak.com

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

Page 21: Wpgunleri 2014 fatihtoprak.com

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

Page 22: Wpgunleri 2014 fatihtoprak.com

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

Page 23: Wpgunleri 2014 fatihtoprak.com

Loop (Döngü)

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 24: Wpgunleri 2014 fatihtoprak.com

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

Page 25: Wpgunleri 2014 fatihtoprak.com

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 26: Wpgunleri 2014 fatihtoprak.com

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

Page 27: Wpgunleri 2014 fatihtoprak.com

Loop

Çoklu loop kullanımı nasıl olmalıdır ?

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 28: Wpgunleri 2014 fatihtoprak.com

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

Page 29: Wpgunleri 2014 fatihtoprak.com

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

Page 30: Wpgunleri 2014 fatihtoprak.com

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 31: Wpgunleri 2014 fatihtoprak.com

HOOKSActions / Filters

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 32: Wpgunleri 2014 fatihtoprak.com

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

Page 33: Wpgunleri 2014 fatihtoprak.com

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

Page 34: Wpgunleri 2014 fatihtoprak.com

Theme Options

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 35: Wpgunleri 2014 fatihtoprak.com

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

Page 36: Wpgunleri 2014 fatihtoprak.com

Optimizasyon

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 37: Wpgunleri 2014 fatihtoprak.com

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

Page 38: Wpgunleri 2014 fatihtoprak.com

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

Page 39: Wpgunleri 2014 fatihtoprak.com

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

Page 40: Wpgunleri 2014 fatihtoprak.com

Transients API

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 41: Wpgunleri 2014 fatihtoprak.com

Transients API

Bir çok eklenti de aslında, bu geçici bellekleme komplikasyonunu kullanır.

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 42: Wpgunleri 2014 fatihtoprak.com

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

Page 43: Wpgunleri 2014 fatihtoprak.com

Transients API

/ftoprakFatih TOPRAK ~ Freelance Developer

Page 44: Wpgunleri 2014 fatihtoprak.com

Teşekkürler :)

http://fatihtoprak.com/wp-gunleri-2014

/ftoprakFatih TOPRAK ~ Freelance Developer