SlideShare a Scribd company logo
1 of 36
Download to read offline
@
W
bilgi@etom.com.tr
www.etom.com.tr
WordPress
Eklenti Geliştirme
DEVAM
KAĞITHANE
ISTANBUL - TR
TRAKYA TEKNOPARK
EDİRNE - TR VİZYONUMUZ VE MİSYONUMUZ
Vizyonumuz, 2023 yılında Türkiye'nin lider
SaaS sağlayıcısı olmak, misyonumuz, yüksek
teknolojiyi ve inovatif ürünleri, düşük
maliyetli çözümlerle kullanıcılarımıza
sunmaktır.
3
KURUMSAL ÖZEL BULUT ALTYAPILARI
SON KULLANICILARA YÖNELİK SAAS ÜRÜNLER
ÜÇÜNCÜ TARAFLARA WORDPRESS EKLENTİLERİ
DEVAM
WORDPRESS
EKLENTİSİ
NEDİR?
EKLENTİ (PLUGIN)
5
WORDPRESS EKLENTİLERİ
Bir WordPress eklentisi, esasen kendinizin
barındırdığı bir WordPress sitenize “takılan”
bir kod parçasıdır.
Daha basit bir deyişle, bir WordPress eklentisi
WordPress sitenize yeni işlevler ekleyen
veya sitenizdeki mevcut işlevleri
genişleten bir yazılım anlamına gelir.
WordPress'in avantajlarından biri, girişimci
geliştiricilerin sitenize ekleyebileceğiniz on
binlerce WordPress eklentisi yazmalarıdır.
Eklentiler, küçük ayarlardan sitenizde
uygulamak istediğiniz büyük çaplı
değişikliklere kadar her şeyi yapabilir.
Örneğin, bazı eklentiler WordPress sitenizi
tam işlevli bir e-Ticaret mağazasına, sosyal
ağa veya foruma dönüştürebilir.
Veya, Instagram feed'i gibi daha küçük
özellikler de ekleyebilirler.
Bazı WordPress eklentileri bile ön tarafa etki
eden özelliklere sahip değildir.
Örneğin, sitenizin performansını iyileştirmek
veya Google gibi arama motorlarında daha iyi
sıralamaya yardımcı olmak için eklentileri
yükleyebilirsiniz.
DEVAM
ÜCRETSİZ VE
TİCARİ
EKLENTİLER
TİCARİ EKLENTİLER
7
WORDPRESS EKLENTİLERİ
Eklentiler, WordPress’i bu kadar kapsamlı ve
heyecan verici yapan en iyi özelliklerden biri.
Web sitenize birkaç basit eklenti ekleyerek,
işlevselliğini tamamen dönüştürebilirsiniz.
Bir eklenti seti sitenizi bir e-Ticaret
mağazasına dönüştürebilir, diğeri ise tam
özellikli bir sosyal ağa çevirebilir.
Seçenekler sonsuzdur.
Çok fazla eklentinin mevcut olması,
elbette de bir dezavantajdır. Aynı şeyi
gerçekleştiren mevcut farklı eklentiler
arasından seçim yapmak zor olabilir.
Ardından, ücretsiz eklentiler veya premium
eklentileri düşünmeniz gerekir. Ücretsiz
sürüm yeterince iyi mi yoksa premium
sürüm mü kullanılmalı?
Hemen her eklentinin mevcut bir premium
versiyonu var ve herkes geliştirici size bunları
satın almaya yönlendirmeye çalışıyor.
Sonuç olarak eklenti geliştirenler de ticari
beklentilerle eklenti geliştirmektedir.
Ancak çoğu yerde ticari olarak geliştirilmiş bir
eklentinin temel özelliklere sahip
versiyonu da bir proje için yeterli olabilir.
Onbinler
DEVAM
WEB SİTELERİNDE ÖZELLEŞTİRME
İHTİYACI VE ÜCRETSİZ/TİCARİ EKLENTİ İLİŞKİSİ
Özelliği Geliştirebilecek 

Kaynağa Sahip Olanlar
Özelliği Geliştirmiş 

Olanlar
Bir Özelliğe İhtiyacı Olanlar
Web Sitesi Sahipleri
Kullana

bilenler
İhtiyacını Ücretsiz Eklentilerle
Karşılayabilenler
Ticari Özelliklere
İhtiyacı Olanlar
Bir Özelliğe İhtiyacı Olanlar
Web Sitesi Sahipleri
Ek
Geliştirme
Konvansiyonel Yöntemlerle Geliştirilmiş 

Web Sitelerinde İhtiyaç Piramidi
WordPress ile Geliştirilmiş 

Web Sitelerinde İhtiyaç Piramidi
SiteSahibininGeliştirmeMaliyeti
İhtiyaca Özel
Eklentiler
Ticari Eklentiler
Ücretsiz
Eklentiler
Milyon
Yüzbinler
Binler
Yüzler
Ölçek
EKLENTİ KÜTÜPHANESİ
9
WORDPRESS EKLENTİ KÜTÜPHANESİ
50.000'in üzerinde ücretsiz eklentisi olan
WordPress Eklenti Dizini, her bir WordPress
kullanıcısı için şehir merkezidir ve bir sonraki
web siteniz için tüm özellikleri ve işlevleri
kapsayan eklentileri bulabilirsiniz.
Yine de ihtiyaçlarınızın açıkça gerektirdiği
kesin özelliği sağlayan bir eklenti
bulamamanız büyük bir olasılıktır.
Bu durumda varolan bir eklentinin
özelliklerini değiştiren bir başka eklenti
yazmanız gerekebilir. Böylece tüm özellikleri
en baştan yazmanız gerekmez. Sadece
mevcut eklentinin işinize yaramayan
özelliklerini değiştirecek bazen küçük bazen
büyük hamlelerle mevcut bir eklentiyi de
ihtiyacınıza tam olarak uyacak hale
getirebilirsiniz.
Eklentinin işlevselliğine hakimiyetinize
güveniyorsanız herşeyi sıfırdan yapmaktan
çok daha kısa bir sürede bunu
gerçekleştirebilmektesiniz.
WordPress kütüphanesinde e-ticaret, forum
gibi temel işlevleri değiştiren eklentileri
arayın. Bu eklentiyle bağlı olarak çalışan
pek çok farklı eklenti olduğunu
göreceksiniz.
EKLENTİ KÜTÜPHANESİ
https://tr.wordpress.org/plugins/
DEVAM
TEMA YA DA
EKLENTİ
GELİŞTİRMEK
11
BAŞKA BİR TEMAYA GEÇTİĞİNİZDE O ÖZELLİĞİ
KULLANMAK İSTEMİYORSANIZ
İŞLEVLERİNİZ ARAYÜZE BAĞLI İSE

ÖRNEĞİN; TASARIMA BAĞLI OLARAK E-TİCARET SEPETİNİ FARKLI ŞEKİLDE GÖSTERMEK
GELİŞTİRDİĞİNİZ ÖZELLİĞİN SADECE VE SADECE O
TEMADA KALACAĞINA EMİNSENİZ
NE ZAMAN TEMA GELİŞTİRMESİ
GEREKLİDİR?
12
GELİŞTİRİLEN ÖZELLİĞİ FARKLI PROJELERDE
TEKRAR TEKRAR KULLANABİLMEK İÇİN
ARAYÜZDEN BAĞIMSIZ TÜM ÖZELLİKLER İÇİN

ÖRNEĞİN; E-TİCARET SİPARİŞİ GELDİĞİNDE SİPARİŞ ÖZETİNİN PDF OLARAK KAYDI
HER ZAMAN GEREKLİ OLARAK ARAYÜZ ÖZELLİKLERİ

ÖRNEĞİN; E-TİCARET ÖDEME FORMUNA YENİ BİR ÖDEME TİPİ EKLEMEK
NE ZAMAN EKLENTİ GELİŞTİRMESİ
GEREKLİDİR?
KODLAMA STANDARTLARI
13
WORDPRESS EKLENTİ KÜTÜPHANESİ
50.000'in üzerinde ücretsiz eklentisi olan
WordPress Eklenti Dizini, her bir WordPress
kullanıcısı için şehir merkezidir ve bir sonraki
web siteniz için tüm özellikleri ve işlevleri
kapsayan eklentileri bulabilirsiniz.
Yine de ihtiyaçlarınızın açıkça gerektirdiği
kesin özelliği sağlayan bir eklenti
bulamamanız büyük bir olasılıktır.
Bu durumda varolan bir eklentinin
özelliklerini değiştiren bir başka eklenti
yazmanız gerekebilir. Böylece tüm özellikleri
en baştan yazmanız gerekmez. Sadece
mevcut eklentinin işinize yaramayan
özelliklerini değiştirecek bazen küçük bazen
büyük hamlelerle mevcut bir eklentiyi de
ihtiyacınıza tam olarak uyacak hale
getirebilirsiniz.
Eklentinin işlevselliğine hakimiyetinize
güveniyorsanız herşeyi sıfırdan yapmaktan
çok daha kısa bir sürede bunu
gerçekleştirebilmektesiniz.
WordPress kütüphanesinde e-ticaret, forum
gibi temel işlevleri değiştiren eklentileri
arayın. Bu eklentiyle bağlı olarak çalışan
pek çok farklı eklenti olduğunu
göreceksiniz.
EKLENTİ KÜTÜPHANESİ
https://tr.wordpress.org/plugins/
$
14
GÜVENLİĞİ CİDDİYE ALMA
Dışarıdan eklentiye kabul ettiğim değişkenleri
kontrol ettim mi? Dışarıya veri paylaşırken
arayüzü bozmayacak şekilde filtreledim mi?
ULUSLARARASI UYUM
Eklentideki tüm temin alanları çeviri
sisteminden geçiyor mu? Eklenti içindeki tüm
metinler İngilizce mi? Çeviri özelliği gerçekten
çalışıyor mu?
KULLANIM SONRASI
Eklentimi kaldırdığımda gereksiz verileri siliyor
muyum yoksa eklentiden arta kalan veriler
veritabanını ve sistemi işgal etmeye devam mı
ediyor?
STRATEJİ
Eklentim gerçek bir sorunu çözecek mi?
Topluluk için mi yazıyorum yoksa gelir elde
etmek için mi? Geliştirdiğim eklentiye destek
verebilecek zamanı ayırabilir miyim? Benzer
eklentiler yazılmış mı?
KARARLI VE TEMİZ KODLAR
Boşluk ve paragrafların belli kurallarla
oluşturulduğu, değişken isimlerinin açıklayıcı ve
yeterli yorumların içerdiği kodlar
NAMESPACE KULLANIMI
Yazdığım özelliklerin diğer eklentilerle
çakışmaması için namespace kullandım ve
eklentimi diğerlerinden izole ettim mi?
WORDPRESS’TE 

KODLAMA STANDARTLARI
2
1
3
4
5
6
BONUS: SAĞLIKLI GELİŞTİRME
ORTAMI İÇİN EK TAVSİYELER
Eklenti geliştirirken DEBUG modunu açtım mı? 

WordPress’in kullanımdan kaldıracağı (deprecated)
fonksiyonları kullandım mı?
İŞLEVSİZ TEMEL BİR EKLENTİ
15
wp-content/plugins/istanbul-meetup/istanbul-meetup.php
16
EKLENTİ BİLGİLERİNİZ DOĞRU VE AÇIKLAYICI
OLMALI
EKLENTİ DOSYALARI HER ZAMAN BİR KLASÖRDE OLMALI

ÖRNEĞİN; WP-CONTENT/PLUGINS/ISTANBUL-MEETUP
FONKSİYONLARDA HER ZAMAN ÖN EK KULLANMALISINIZ

ÖRNEĞİN; ISTANBUL_MEETUP_FONKSIYON_ADI()
EKLENTİDE DİKKAT EDİLMESİ
GEREKENLER
JS VE CSS DOSYALARI
17
EKLENTİ AYARLARI
18
OPTIONS API
 SETTINGS API
WordPress tüm ayarlarını wp_options
tablosunda anahtar - değer şeklinde
saklamaktadır.
Tüm eklentiler de aynı tabloda kendilerine
özel anahtar kelimeler kullanarak kendi
özelliklerini saklayabilir ve gerektiğinde
okuyabilirler.






Ayarlar API'si, ayar formlarını içeren yönetici
sayfalarının yarı otomatik olarak
yönetilmesine izin verir.
Neden Settings API?
Settings API kullanmadan da kendi ayar
s a y f a n ı z ı ü s t t e k i g ö r s e l d e k i g i b i
oluşturabilirsiniz ancak Settings API
kullandığınızda;
- Görsel Tutarlılık
- Gelecekteki Sürümlere Uyumlu
- Daha Az İş
- Gönderilen Verileri İşleme
- Güvenlik Kontrolleri
- Veri Düzenleme
SETTINGS API
19
Yeni Bir Ayar Eklemek:
Yeni Bir Bölüm Eklemek:
Yeni Bir Değer Eklemek:
20
21
DEVAM
WORDPRESS
AKIŞINI
DEĞİŞTİRME
23
KONUYU EN İYİ BİLEN ARKADAŞA SORMAK

İPUCU: O BİR ARAMA MOTORU DA OLABİLİR!

İLGİLİ KAYNAK KODLARI OKUMAK

YERİ GELDİĞİNDE WORDPRESS ÇEKİRDEĞİNİ YERİ GELDİĞİNDE EKLENTİ/TEMALARIN KODLARI
WORDPRESS CODEX: CODEX.WORDPRESS.ORG/PLUGIN_API/HOOKS

HEPSİ OLMASA DA ÖNEMLİ FİLTRE VE AKSİYONLAR DOKÜMANTE EDİLMİŞTİR
EKLENTİDE DİKKAT EDİLMESİ
GEREKENLER
24
WP HOOK (WP KANCALARI)
25
HOOK
 FİLTRE VE EYLEMLER
WordPress teması ve geliştirmesinde, Hooks
(Kanca), WordPress'te bir Eylem veya Filtreye
uygulanabilecek işlevlerdir.
WordPress'deki Eylemler ve Filtreler,
varsayılan WordPress işlevselliğini değiştirmek
için tema ve eklenti geliştiricileri tarafından
değiştirilebilen işlevlerdir.
Ancak filtre ve eylemler iki farklı kavramdırlar.
Filtreler (Filters): Yukarıdaki örnekte olduğu
gibi bir veriyi içeriye alıp ($output), üzerinde
istenilen değişikliklerin yapıldığı ve
f o n k s i y o n d a n d ı ş a r ı y a a k t a r ı l d ı ğ ı
fonksiyonlardır.
Böylece veri üzerinde değişiklik yapılabilir. 



ÖNCEKİ VERİ->FİLTRE->SONRAKİ VERİ
Eylemler (Actions): Belli bir işlem
yapıldığında bağımsız olarak çalıştırılan kod
parçalarıdır.
ÖRNEKLER
26
FİLTRE ÖRNEKLERİ
 EYLEM ÖRNEKLERİ
• Giriş hatasında dönen hata mesajlarını
değiştirmek (üstteki örnek) (login_errors)
• Yorum yapan kullanıcıları başka bir sayfaya
(örneğin e-posta abonelik sayfası)
yönlendirmek (comment_post_redirect)
• Sayfanın body etiketine yeni css sınıfları
eklemek (body_class)
• Sitenin dilini değiştirmek (locale)
• Sadece küçük harf içeren kullanıcı adı
kabul etmek (sanitize_user)
• İçerik içindeki linkleri, resimleri ekrana
yazdırırken silmek (the_content)
• Bir e-ticaret eklentisindeki ödeme türlerinin
listesine ekleme yapmak
• Kullanıcılar giriş yaparken e-posta
adreslerini kullanmaya da izin verilmesi
(wp_authenticate)
• Giriş formunda bir uyarı görüntüleme
(login_form)
• Yönetici panelinde sol menüdeki sayfaları
düzenleme (admin_menu)
• Yönetici ekranında post sayfasındaki
k o l o n l a r i ç e r i k l e r i n i d ü z e n l e m e
(manage_posts_custom_column)
• Yönetici panelinde yeni uyarılar gösterme
(admin_notices)
• HEAD etiketi içine yeni içerikler ekleme
(wp_head)
ZAMANLANMIŞ GÖREVLER
27
ZAMANLANMIŞ GÖREVLER
Cron, planlanan zamanda veya düzenli
aralıklarla çalıştırılacak komutlar için
kullanılan teknik bir terimdir.
Çoğu web sunucusu, sunucuyu korumak ve
zamanlanmış görevleri çalıştırmak için kullanır.
WordPress, programlanmış görevleri
gerçekleştirmesine izin veren kendi cron
sistemi ile birlikte gelir.
Örneğin, güncellemeleri kontrol etmek,
eski yorumları çöp kutusundan silmek
vb.
Zamanlanmış görevleri görmek için cron
işlevlerini gösteren eklentiler kullanılabilir.
(solda)
İpucu: Bir zamanlanmış göreve gerçek bir
zaman belirtseniz bile WordPress ilgili
zamanda çalışmamış ise göreviniz WordPress
bir sonraki yüklenene kadar çalışmayacaktır.
Örneğin her gün 12:00 de çalışacak bir görev
var fakat sitenizde 12:00’de bir ziyaretçi
yoksa ziyaretçi sayfanıza ulaştığında görev
çalışır.
ÇOK DİLLİLİK (I18N)
28
EKLENTİLERDE ÇEVİRİ
WordPress kendi içinde getText adı verilen
bir çeviri motoru ile birlikte gelmektedir.
Kurulum aşamasında WordPress sitenin dilini
sormakta ve kurulumdaki dille birlikte kullanım
sağlanmaktadır.
Fakat bu dili sonradan değiştirmek
mümkündür. Hatta bu tercihi kullanıcıya
bırakan WPML gibi kapsamlı eklentiler de
vardır.
Tüm çeviri eklentileri getText temelli olarak
çalışırlar.
Bu sebeple eklenti geliştirirken kullanıcıya
u l a ş a c a k t ü m y a z ı l a r ç e v i r i
fonksiyonlarından geçmeli ve kod içindeki
cümleler İngilizce olarak yazılmalıdır.
Eklenti içine Türkçe çeviri dosyasını
ekleyerek otomatik olarak Türkçe çalışmasını
sağlayabilirsiniz.
TRANSLATION API
29
Dil Dosyası Tanımlamak:
HTML Çeviri Örneği:
URL İçeren Çeviri Örneği
DEVAM
UYGULAMA ZAMANI



HTTPS://GITHUB.COM/TKAPROL/MEETUPISTANBUL
31
GELİŞTİRMEYE BAŞLANGIÇ

İÇERİK SAYFALARINDA ÖZEL BİR MESAJ GÖSTEREN EKLENTİ
GELİŞTİRME
DOCKER YARDIMIYLA İŞLETİM SİSTEMİMİZDEN BAĞIMSIZ STABİL
LAMP VE WORDPRESS KURULUMU
EKLENTİ GITHUB REPOSUNUN OLUŞTURULMASI
UYGULAMA ZAMANI: WORDPRESS
EKLENTİSİ GELİŞTİRİYORUZ
32
TERMİNAL EKRANINDA: DOCKER-COMPOSE
UP -D
ÖNGEREKSİNİMLER: DOCKER, DOCKER COMPOSE, GIT, METİN
EDİTÖRÜ, TARAYICI VE İNTERNET BAĞLANTISI
GIT CLONE HTTPS://GITHUB.COM/TKAPROL/
MEETUPISTANBUL.GIT
ÜÇ ADIMDA GELİŞTİRME ORTAMINA
GEÇİŞ
33
KULLANICILAR, VERİTABANI VB. TÜM
BİLEŞENLER İSTEDİĞİMİZ VERSİYON VE
AYARLAR İLE ÇALIŞIR DURUMA GELİYOR
HERHANGİ BİR BİLGİSAYARDA YA DA İŞLETİM SİSTEMİNDE
TAMAMEN AYNI WORDPRESS ORTAMINDA ÇALIŞABİLİRSİNİZ
TEK SATIR KOMUTLA ORTAM KURULUMU: DOCKER-
COMPOSE UP -D
NEDEN DOCKER VE DOCKER COMPOSE
KULLANIYORUZ?
DEVAM
DAHA FAZLASI?
etom.com.tr/wordpress-gelistiricisi-olmak-istiyorum/
DEVAM
WORDPRESS
GELİŞTİRME UZMANI
etom.com.tr/is-basvurusu
@
W
bilgi@etom.com.tr
www.etom.com.tr
Teşekkürler

More Related Content

Similar to WordPress Meetup #4 - WordPress Eklentisi Geliştirmeye Giriş

IBM Yazılım Zirvesi - Websphere ile Sıradışı Kullanıcı Deneyimleri
IBM Yazılım Zirvesi - Websphere ile Sıradışı Kullanıcı DeneyimleriIBM Yazılım Zirvesi - Websphere ile Sıradışı Kullanıcı Deneyimleri
IBM Yazılım Zirvesi - Websphere ile Sıradışı Kullanıcı DeneyimleriOsman Küçüksönmez, PMP
 
Wordpress nedir
Wordpress nedirWordpress nedir
Wordpress nedir07ada
 
Wordpress Sunum
Wordpress SunumWordpress Sunum
Wordpress Sunumsquizmo
 
Sharepoint 2013 te Yazılım Geliştirme Teknikleri
Sharepoint 2013 te Yazılım Geliştirme TeknikleriSharepoint 2013 te Yazılım Geliştirme Teknikleri
Sharepoint 2013 te Yazılım Geliştirme TeknikleriIbrahim Ersoy
 
Word press
Word pressWord press
Word pressmoda145
 
Wordpress
WordpressWordpress
Wordpressankr06
 
Wordpress
WordpressWordpress
Wordpressankra06
 
Wordpress
WordpressWordpress
Wordpressankr06
 
Wordpress nedir
Wordpress nedirWordpress nedir
Wordpress nedirbhr2010
 
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurulumu
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve KurulumuWindows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurulumu
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve KurulumuMustafa
 
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurul...
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurul...Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurul...
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurul...sbs2008
 
Wordpress SEO: Optimisations & Plugins
Wordpress SEO: Optimisations & PluginsWordpress SEO: Optimisations & Plugins
Wordpress SEO: Optimisations & PluginsBurak Pehlivan
 
WP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin GeleceğiWP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin GeleceğiBora Yalcin
 
Azure devops sunum
Azure devops sunumAzure devops sunum
Azure devops sunumismetandac
 

Similar to WordPress Meetup #4 - WordPress Eklentisi Geliştirmeye Giriş (20)

IBM Yazılım Zirvesi - Websphere ile Sıradışı Kullanıcı Deneyimleri
IBM Yazılım Zirvesi - Websphere ile Sıradışı Kullanıcı DeneyimleriIBM Yazılım Zirvesi - Websphere ile Sıradışı Kullanıcı Deneyimleri
IBM Yazılım Zirvesi - Websphere ile Sıradışı Kullanıcı Deneyimleri
 
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor? Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor?
 
Wordpress nedir
Wordpress nedirWordpress nedir
Wordpress nedir
 
Wordpress Sunum
Wordpress SunumWordpress Sunum
Wordpress Sunum
 
Wordpress
WordpressWordpress
Wordpress
 
Wordpress
WordpressWordpress
Wordpress
 
Wordpress
WordpressWordpress
Wordpress
 
Sharepoint 2013 te Yazılım Geliştirme Teknikleri
Sharepoint 2013 te Yazılım Geliştirme TeknikleriSharepoint 2013 te Yazılım Geliştirme Teknikleri
Sharepoint 2013 te Yazılım Geliştirme Teknikleri
 
Word press
Word pressWord press
Word press
 
Wordpress
WordpressWordpress
Wordpress
 
Wordpress
WordpressWordpress
Wordpress
 
Wordpress
WordpressWordpress
Wordpress
 
Wordpress
WordpressWordpress
Wordpress
 
Wordpress nedir
Wordpress nedirWordpress nedir
Wordpress nedir
 
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurulumu
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve KurulumuWindows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurulumu
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurulumu
 
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurul...
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurul...Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurul...
Windows Small Business Server 2011 Yenilikleri,Sistem Gereksinimleri ve Kurul...
 
Wordpress SEO: Optimisations & Plugins
Wordpress SEO: Optimisations & PluginsWordpress SEO: Optimisations & Plugins
Wordpress SEO: Optimisations & Plugins
 
WP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin GeleceğiWP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin Geleceği
 
Azure devops sunum
Azure devops sunumAzure devops sunum
Azure devops sunum
 
12factor apps
12factor apps12factor apps
12factor apps
 

More from Tolga Kaprol

Kokpit İş Ortaklığı
Kokpit İş OrtaklığıKokpit İş Ortaklığı
Kokpit İş OrtaklığıTolga Kaprol
 
WordPress Meetup #3 - Tema Geliştirmeye Giriş
WordPress Meetup #3 - Tema Geliştirmeye GirişWordPress Meetup #3 - Tema Geliştirmeye Giriş
WordPress Meetup #3 - Tema Geliştirmeye GirişTolga Kaprol
 
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...Tolga Kaprol
 
FF Bilişim Kurum Tanıtımı 2017
FF Bilişim Kurum Tanıtımı 2017FF Bilişim Kurum Tanıtımı 2017
FF Bilişim Kurum Tanıtımı 2017Tolga Kaprol
 
WordPress Istanbul - Eylül 2017 - Gravity Forms Workshop
WordPress Istanbul - Eylül 2017 - Gravity Forms WorkshopWordPress Istanbul - Eylül 2017 - Gravity Forms Workshop
WordPress Istanbul - Eylül 2017 - Gravity Forms WorkshopTolga Kaprol
 
WordPress Istanbul açılışı ve WordPress Ekosistemi
WordPress Istanbul açılışı ve WordPress EkosistemiWordPress Istanbul açılışı ve WordPress Ekosistemi
WordPress Istanbul açılışı ve WordPress EkosistemiTolga Kaprol
 

More from Tolga Kaprol (6)

Kokpit İş Ortaklığı
Kokpit İş OrtaklığıKokpit İş Ortaklığı
Kokpit İş Ortaklığı
 
WordPress Meetup #3 - Tema Geliştirmeye Giriş
WordPress Meetup #3 - Tema Geliştirmeye GirişWordPress Meetup #3 - Tema Geliştirmeye Giriş
WordPress Meetup #3 - Tema Geliştirmeye Giriş
 
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
 
FF Bilişim Kurum Tanıtımı 2017
FF Bilişim Kurum Tanıtımı 2017FF Bilişim Kurum Tanıtımı 2017
FF Bilişim Kurum Tanıtımı 2017
 
WordPress Istanbul - Eylül 2017 - Gravity Forms Workshop
WordPress Istanbul - Eylül 2017 - Gravity Forms WorkshopWordPress Istanbul - Eylül 2017 - Gravity Forms Workshop
WordPress Istanbul - Eylül 2017 - Gravity Forms Workshop
 
WordPress Istanbul açılışı ve WordPress Ekosistemi
WordPress Istanbul açılışı ve WordPress EkosistemiWordPress Istanbul açılışı ve WordPress Ekosistemi
WordPress Istanbul açılışı ve WordPress Ekosistemi
 

WordPress Meetup #4 - WordPress Eklentisi Geliştirmeye Giriş

  • 2. DEVAM KAĞITHANE ISTANBUL - TR TRAKYA TEKNOPARK EDİRNE - TR VİZYONUMUZ VE MİSYONUMUZ Vizyonumuz, 2023 yılında Türkiye'nin lider SaaS sağlayıcısı olmak, misyonumuz, yüksek teknolojiyi ve inovatif ürünleri, düşük maliyetli çözümlerle kullanıcılarımıza sunmaktır.
  • 3. 3 KURUMSAL ÖZEL BULUT ALTYAPILARI SON KULLANICILARA YÖNELİK SAAS ÜRÜNLER ÜÇÜNCÜ TARAFLARA WORDPRESS EKLENTİLERİ
  • 5. EKLENTİ (PLUGIN) 5 WORDPRESS EKLENTİLERİ Bir WordPress eklentisi, esasen kendinizin barındırdığı bir WordPress sitenize “takılan” bir kod parçasıdır. Daha basit bir deyişle, bir WordPress eklentisi WordPress sitenize yeni işlevler ekleyen veya sitenizdeki mevcut işlevleri genişleten bir yazılım anlamına gelir. WordPress'in avantajlarından biri, girişimci geliştiricilerin sitenize ekleyebileceğiniz on binlerce WordPress eklentisi yazmalarıdır. Eklentiler, küçük ayarlardan sitenizde uygulamak istediğiniz büyük çaplı değişikliklere kadar her şeyi yapabilir. Örneğin, bazı eklentiler WordPress sitenizi tam işlevli bir e-Ticaret mağazasına, sosyal ağa veya foruma dönüştürebilir. Veya, Instagram feed'i gibi daha küçük özellikler de ekleyebilirler. Bazı WordPress eklentileri bile ön tarafa etki eden özelliklere sahip değildir. Örneğin, sitenizin performansını iyileştirmek veya Google gibi arama motorlarında daha iyi sıralamaya yardımcı olmak için eklentileri yükleyebilirsiniz.
  • 7. TİCARİ EKLENTİLER 7 WORDPRESS EKLENTİLERİ Eklentiler, WordPress’i bu kadar kapsamlı ve heyecan verici yapan en iyi özelliklerden biri. Web sitenize birkaç basit eklenti ekleyerek, işlevselliğini tamamen dönüştürebilirsiniz. Bir eklenti seti sitenizi bir e-Ticaret mağazasına dönüştürebilir, diğeri ise tam özellikli bir sosyal ağa çevirebilir. Seçenekler sonsuzdur. Çok fazla eklentinin mevcut olması, elbette de bir dezavantajdır. Aynı şeyi gerçekleştiren mevcut farklı eklentiler arasından seçim yapmak zor olabilir. Ardından, ücretsiz eklentiler veya premium eklentileri düşünmeniz gerekir. Ücretsiz sürüm yeterince iyi mi yoksa premium sürüm mü kullanılmalı? Hemen her eklentinin mevcut bir premium versiyonu var ve herkes geliştirici size bunları satın almaya yönlendirmeye çalışıyor. Sonuç olarak eklenti geliştirenler de ticari beklentilerle eklenti geliştirmektedir. Ancak çoğu yerde ticari olarak geliştirilmiş bir eklentinin temel özelliklere sahip versiyonu da bir proje için yeterli olabilir.
  • 8. Onbinler DEVAM WEB SİTELERİNDE ÖZELLEŞTİRME İHTİYACI VE ÜCRETSİZ/TİCARİ EKLENTİ İLİŞKİSİ Özelliği Geliştirebilecek 
 Kaynağa Sahip Olanlar Özelliği Geliştirmiş 
 Olanlar Bir Özelliğe İhtiyacı Olanlar Web Sitesi Sahipleri Kullana
 bilenler İhtiyacını Ücretsiz Eklentilerle Karşılayabilenler Ticari Özelliklere İhtiyacı Olanlar Bir Özelliğe İhtiyacı Olanlar Web Sitesi Sahipleri Ek Geliştirme Konvansiyonel Yöntemlerle Geliştirilmiş 
 Web Sitelerinde İhtiyaç Piramidi WordPress ile Geliştirilmiş 
 Web Sitelerinde İhtiyaç Piramidi SiteSahibininGeliştirmeMaliyeti İhtiyaca Özel Eklentiler Ticari Eklentiler Ücretsiz Eklentiler Milyon Yüzbinler Binler Yüzler Ölçek
  • 9. EKLENTİ KÜTÜPHANESİ 9 WORDPRESS EKLENTİ KÜTÜPHANESİ 50.000'in üzerinde ücretsiz eklentisi olan WordPress Eklenti Dizini, her bir WordPress kullanıcısı için şehir merkezidir ve bir sonraki web siteniz için tüm özellikleri ve işlevleri kapsayan eklentileri bulabilirsiniz. Yine de ihtiyaçlarınızın açıkça gerektirdiği kesin özelliği sağlayan bir eklenti bulamamanız büyük bir olasılıktır. Bu durumda varolan bir eklentinin özelliklerini değiştiren bir başka eklenti yazmanız gerekebilir. Böylece tüm özellikleri en baştan yazmanız gerekmez. Sadece mevcut eklentinin işinize yaramayan özelliklerini değiştirecek bazen küçük bazen büyük hamlelerle mevcut bir eklentiyi de ihtiyacınıza tam olarak uyacak hale getirebilirsiniz. Eklentinin işlevselliğine hakimiyetinize güveniyorsanız herşeyi sıfırdan yapmaktan çok daha kısa bir sürede bunu gerçekleştirebilmektesiniz. WordPress kütüphanesinde e-ticaret, forum gibi temel işlevleri değiştiren eklentileri arayın. Bu eklentiyle bağlı olarak çalışan pek çok farklı eklenti olduğunu göreceksiniz. EKLENTİ KÜTÜPHANESİ https://tr.wordpress.org/plugins/
  • 11. 11 BAŞKA BİR TEMAYA GEÇTİĞİNİZDE O ÖZELLİĞİ KULLANMAK İSTEMİYORSANIZ İŞLEVLERİNİZ ARAYÜZE BAĞLI İSE
 ÖRNEĞİN; TASARIMA BAĞLI OLARAK E-TİCARET SEPETİNİ FARKLI ŞEKİLDE GÖSTERMEK GELİŞTİRDİĞİNİZ ÖZELLİĞİN SADECE VE SADECE O TEMADA KALACAĞINA EMİNSENİZ NE ZAMAN TEMA GELİŞTİRMESİ GEREKLİDİR?
  • 12. 12 GELİŞTİRİLEN ÖZELLİĞİ FARKLI PROJELERDE TEKRAR TEKRAR KULLANABİLMEK İÇİN ARAYÜZDEN BAĞIMSIZ TÜM ÖZELLİKLER İÇİN
 ÖRNEĞİN; E-TİCARET SİPARİŞİ GELDİĞİNDE SİPARİŞ ÖZETİNİN PDF OLARAK KAYDI HER ZAMAN GEREKLİ OLARAK ARAYÜZ ÖZELLİKLERİ
 ÖRNEĞİN; E-TİCARET ÖDEME FORMUNA YENİ BİR ÖDEME TİPİ EKLEMEK NE ZAMAN EKLENTİ GELİŞTİRMESİ GEREKLİDİR?
  • 13. KODLAMA STANDARTLARI 13 WORDPRESS EKLENTİ KÜTÜPHANESİ 50.000'in üzerinde ücretsiz eklentisi olan WordPress Eklenti Dizini, her bir WordPress kullanıcısı için şehir merkezidir ve bir sonraki web siteniz için tüm özellikleri ve işlevleri kapsayan eklentileri bulabilirsiniz. Yine de ihtiyaçlarınızın açıkça gerektirdiği kesin özelliği sağlayan bir eklenti bulamamanız büyük bir olasılıktır. Bu durumda varolan bir eklentinin özelliklerini değiştiren bir başka eklenti yazmanız gerekebilir. Böylece tüm özellikleri en baştan yazmanız gerekmez. Sadece mevcut eklentinin işinize yaramayan özelliklerini değiştirecek bazen küçük bazen büyük hamlelerle mevcut bir eklentiyi de ihtiyacınıza tam olarak uyacak hale getirebilirsiniz. Eklentinin işlevselliğine hakimiyetinize güveniyorsanız herşeyi sıfırdan yapmaktan çok daha kısa bir sürede bunu gerçekleştirebilmektesiniz. WordPress kütüphanesinde e-ticaret, forum gibi temel işlevleri değiştiren eklentileri arayın. Bu eklentiyle bağlı olarak çalışan pek çok farklı eklenti olduğunu göreceksiniz. EKLENTİ KÜTÜPHANESİ https://tr.wordpress.org/plugins/
  • 14. $ 14 GÜVENLİĞİ CİDDİYE ALMA Dışarıdan eklentiye kabul ettiğim değişkenleri kontrol ettim mi? Dışarıya veri paylaşırken arayüzü bozmayacak şekilde filtreledim mi? ULUSLARARASI UYUM Eklentideki tüm temin alanları çeviri sisteminden geçiyor mu? Eklenti içindeki tüm metinler İngilizce mi? Çeviri özelliği gerçekten çalışıyor mu? KULLANIM SONRASI Eklentimi kaldırdığımda gereksiz verileri siliyor muyum yoksa eklentiden arta kalan veriler veritabanını ve sistemi işgal etmeye devam mı ediyor? STRATEJİ Eklentim gerçek bir sorunu çözecek mi? Topluluk için mi yazıyorum yoksa gelir elde etmek için mi? Geliştirdiğim eklentiye destek verebilecek zamanı ayırabilir miyim? Benzer eklentiler yazılmış mı? KARARLI VE TEMİZ KODLAR Boşluk ve paragrafların belli kurallarla oluşturulduğu, değişken isimlerinin açıklayıcı ve yeterli yorumların içerdiği kodlar NAMESPACE KULLANIMI Yazdığım özelliklerin diğer eklentilerle çakışmaması için namespace kullandım ve eklentimi diğerlerinden izole ettim mi? WORDPRESS’TE 
 KODLAMA STANDARTLARI 2 1 3 4 5 6 BONUS: SAĞLIKLI GELİŞTİRME ORTAMI İÇİN EK TAVSİYELER Eklenti geliştirirken DEBUG modunu açtım mı? 
 WordPress’in kullanımdan kaldıracağı (deprecated) fonksiyonları kullandım mı?
  • 15. İŞLEVSİZ TEMEL BİR EKLENTİ 15 wp-content/plugins/istanbul-meetup/istanbul-meetup.php
  • 16. 16 EKLENTİ BİLGİLERİNİZ DOĞRU VE AÇIKLAYICI OLMALI EKLENTİ DOSYALARI HER ZAMAN BİR KLASÖRDE OLMALI
 ÖRNEĞİN; WP-CONTENT/PLUGINS/ISTANBUL-MEETUP FONKSİYONLARDA HER ZAMAN ÖN EK KULLANMALISINIZ
 ÖRNEĞİN; ISTANBUL_MEETUP_FONKSIYON_ADI() EKLENTİDE DİKKAT EDİLMESİ GEREKENLER
  • 17. JS VE CSS DOSYALARI 17
  • 18. EKLENTİ AYARLARI 18 OPTIONS API SETTINGS API WordPress tüm ayarlarını wp_options tablosunda anahtar - değer şeklinde saklamaktadır. Tüm eklentiler de aynı tabloda kendilerine özel anahtar kelimeler kullanarak kendi özelliklerini saklayabilir ve gerektiğinde okuyabilirler. 
 
 
 Ayarlar API'si, ayar formlarını içeren yönetici sayfalarının yarı otomatik olarak yönetilmesine izin verir. Neden Settings API? Settings API kullanmadan da kendi ayar s a y f a n ı z ı ü s t t e k i g ö r s e l d e k i g i b i oluşturabilirsiniz ancak Settings API kullandığınızda; - Görsel Tutarlılık - Gelecekteki Sürümlere Uyumlu - Daha Az İş - Gönderilen Verileri İşleme - Güvenlik Kontrolleri - Veri Düzenleme
  • 19. SETTINGS API 19 Yeni Bir Ayar Eklemek: Yeni Bir Bölüm Eklemek: Yeni Bir Değer Eklemek:
  • 20. 20
  • 21. 21
  • 23. 23 KONUYU EN İYİ BİLEN ARKADAŞA SORMAK
 İPUCU: O BİR ARAMA MOTORU DA OLABİLİR!
 İLGİLİ KAYNAK KODLARI OKUMAK
 YERİ GELDİĞİNDE WORDPRESS ÇEKİRDEĞİNİ YERİ GELDİĞİNDE EKLENTİ/TEMALARIN KODLARI WORDPRESS CODEX: CODEX.WORDPRESS.ORG/PLUGIN_API/HOOKS
 HEPSİ OLMASA DA ÖNEMLİ FİLTRE VE AKSİYONLAR DOKÜMANTE EDİLMİŞTİR EKLENTİDE DİKKAT EDİLMESİ GEREKENLER
  • 24. 24
  • 25. WP HOOK (WP KANCALARI) 25 HOOK FİLTRE VE EYLEMLER WordPress teması ve geliştirmesinde, Hooks (Kanca), WordPress'te bir Eylem veya Filtreye uygulanabilecek işlevlerdir. WordPress'deki Eylemler ve Filtreler, varsayılan WordPress işlevselliğini değiştirmek için tema ve eklenti geliştiricileri tarafından değiştirilebilen işlevlerdir. Ancak filtre ve eylemler iki farklı kavramdırlar. Filtreler (Filters): Yukarıdaki örnekte olduğu gibi bir veriyi içeriye alıp ($output), üzerinde istenilen değişikliklerin yapıldığı ve f o n k s i y o n d a n d ı ş a r ı y a a k t a r ı l d ı ğ ı fonksiyonlardır. Böylece veri üzerinde değişiklik yapılabilir. 
 
 ÖNCEKİ VERİ->FİLTRE->SONRAKİ VERİ Eylemler (Actions): Belli bir işlem yapıldığında bağımsız olarak çalıştırılan kod parçalarıdır.
  • 26. ÖRNEKLER 26 FİLTRE ÖRNEKLERİ EYLEM ÖRNEKLERİ • Giriş hatasında dönen hata mesajlarını değiştirmek (üstteki örnek) (login_errors) • Yorum yapan kullanıcıları başka bir sayfaya (örneğin e-posta abonelik sayfası) yönlendirmek (comment_post_redirect) • Sayfanın body etiketine yeni css sınıfları eklemek (body_class) • Sitenin dilini değiştirmek (locale) • Sadece küçük harf içeren kullanıcı adı kabul etmek (sanitize_user) • İçerik içindeki linkleri, resimleri ekrana yazdırırken silmek (the_content) • Bir e-ticaret eklentisindeki ödeme türlerinin listesine ekleme yapmak • Kullanıcılar giriş yaparken e-posta adreslerini kullanmaya da izin verilmesi (wp_authenticate) • Giriş formunda bir uyarı görüntüleme (login_form) • Yönetici panelinde sol menüdeki sayfaları düzenleme (admin_menu) • Yönetici ekranında post sayfasındaki k o l o n l a r i ç e r i k l e r i n i d ü z e n l e m e (manage_posts_custom_column) • Yönetici panelinde yeni uyarılar gösterme (admin_notices) • HEAD etiketi içine yeni içerikler ekleme (wp_head)
  • 27. ZAMANLANMIŞ GÖREVLER 27 ZAMANLANMIŞ GÖREVLER Cron, planlanan zamanda veya düzenli aralıklarla çalıştırılacak komutlar için kullanılan teknik bir terimdir. Çoğu web sunucusu, sunucuyu korumak ve zamanlanmış görevleri çalıştırmak için kullanır. WordPress, programlanmış görevleri gerçekleştirmesine izin veren kendi cron sistemi ile birlikte gelir. Örneğin, güncellemeleri kontrol etmek, eski yorumları çöp kutusundan silmek vb. Zamanlanmış görevleri görmek için cron işlevlerini gösteren eklentiler kullanılabilir. (solda) İpucu: Bir zamanlanmış göreve gerçek bir zaman belirtseniz bile WordPress ilgili zamanda çalışmamış ise göreviniz WordPress bir sonraki yüklenene kadar çalışmayacaktır. Örneğin her gün 12:00 de çalışacak bir görev var fakat sitenizde 12:00’de bir ziyaretçi yoksa ziyaretçi sayfanıza ulaştığında görev çalışır.
  • 28. ÇOK DİLLİLİK (I18N) 28 EKLENTİLERDE ÇEVİRİ WordPress kendi içinde getText adı verilen bir çeviri motoru ile birlikte gelmektedir. Kurulum aşamasında WordPress sitenin dilini sormakta ve kurulumdaki dille birlikte kullanım sağlanmaktadır. Fakat bu dili sonradan değiştirmek mümkündür. Hatta bu tercihi kullanıcıya bırakan WPML gibi kapsamlı eklentiler de vardır. Tüm çeviri eklentileri getText temelli olarak çalışırlar. Bu sebeple eklenti geliştirirken kullanıcıya u l a ş a c a k t ü m y a z ı l a r ç e v i r i fonksiyonlarından geçmeli ve kod içindeki cümleler İngilizce olarak yazılmalıdır. Eklenti içine Türkçe çeviri dosyasını ekleyerek otomatik olarak Türkçe çalışmasını sağlayabilirsiniz.
  • 29. TRANSLATION API 29 Dil Dosyası Tanımlamak: HTML Çeviri Örneği: URL İçeren Çeviri Örneği
  • 31. 31 GELİŞTİRMEYE BAŞLANGIÇ İÇERİK SAYFALARINDA ÖZEL BİR MESAJ GÖSTEREN EKLENTİ GELİŞTİRME DOCKER YARDIMIYLA İŞLETİM SİSTEMİMİZDEN BAĞIMSIZ STABİL LAMP VE WORDPRESS KURULUMU EKLENTİ GITHUB REPOSUNUN OLUŞTURULMASI UYGULAMA ZAMANI: WORDPRESS EKLENTİSİ GELİŞTİRİYORUZ
  • 32. 32 TERMİNAL EKRANINDA: DOCKER-COMPOSE UP -D ÖNGEREKSİNİMLER: DOCKER, DOCKER COMPOSE, GIT, METİN EDİTÖRÜ, TARAYICI VE İNTERNET BAĞLANTISI GIT CLONE HTTPS://GITHUB.COM/TKAPROL/ MEETUPISTANBUL.GIT ÜÇ ADIMDA GELİŞTİRME ORTAMINA GEÇİŞ
  • 33. 33 KULLANICILAR, VERİTABANI VB. TÜM BİLEŞENLER İSTEDİĞİMİZ VERSİYON VE AYARLAR İLE ÇALIŞIR DURUMA GELİYOR HERHANGİ BİR BİLGİSAYARDA YA DA İŞLETİM SİSTEMİNDE TAMAMEN AYNI WORDPRESS ORTAMINDA ÇALIŞABİLİRSİNİZ TEK SATIR KOMUTLA ORTAM KURULUMU: DOCKER- COMPOSE UP -D NEDEN DOCKER VE DOCKER COMPOSE KULLANIYORUZ?