WordPress eklentisi nedir? WordPress eklentisi ekosistemi hakkında bilgiler. Ücretli ve Ücretsiz eklentiler arasındaki ilişkiler. WordPress eklentisi geliştirmenin temel bileşenleri nelerdir? WordPress eklenti geliştirici olmak isteyenler nelere dikkat etmelidir?
1 of 36
Download to read offline
More Related Content
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
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
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
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.
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?