Upload
mustafa-uysal
View
683
Download
2
Embed Size (px)
Citation preview
Mustafa Uysal
@m_uysl [email protected] blog.uysalmustafa.com
#istanbulphp
WordPress Plugin
Development
Ben Kimim?• Yazılım Geliştirici
(Nefis Yemek Tarifleri)
• Kurucu (SKOP)
• WordPress Geliştirici(Plugin|Çeviri|Core)
• Yazar @wpnotlari
• Eklenti Konsepti• Plugin API
• Eklenti Dizini
• Sıfırdan Eklenti Yazalım
• İpuçları
Neden Eklenti Geliştiriyoruz?
Eklenti Nedir?
WordPress’e yeni işlev ekleyebilirler.Mevcut WordPress özelliğini kaldırabilirler.
Mevcut WordPress özelliğini değiştirebilirler.
PHP scriptidir. (Gülüşmeler) Bunlar;
Nerede yaşarlar?
• wp-content/plugins/hede.php • wp-content/plugins/hede/hodo.php • Plugin Header içeren `.php` dosyası
Plugin Header
Actions
•WordPress çekirdeği tarafından “action” tetiklenir.
•Action’a bağlı kodlar çalıştırılır
Actions
Filters
• WordPress callback’e veri gönderir
• Callback işini görür, verinin son halini geri gönderir
Filters
Hadi Eklenti Yazalım
Bu eklenti ne yapsın?
• WordPress upload url’i değiştirsinexample.com/wp-content/uploads => cdn.example.com/wp-content/uploads
• Yazı içindeki görselleri değiştirsin
Nasıl Yazalım?
Prefix
function prefix_fonksiyon_adi()
VSfunction fonksiyon_adi()
“Plugin Name” Zorunlu
“init” en önemli action
Tek satırla çoklu dil desteği
“admin_menu”
“admin_menu”
“admin_init”
https://gist.github.com/mustafauysal/73a9dfe8cde23405916b
Eklentiyi Yazdık Ya Sonra?
Readme.txt
Readme Oluşturucu: http://sudarmuthu.com/wordpress/wp-readme/
Readme Validator
https://wordpress.org/plugins/about/validator/
svn checkout http://plugins.svn.wordpress.org/eklenti-adi
SVN
geliştirme aşaması için /trunk
sürümler için /tag
“Stable tag” belirtelim
/trunk/readme.txt
İpuçları
Eklentiyi Yazmadan Önce Araştır
Hali hazırda 40k+ eklenti var
define('WP_DEBUG', true);define('WP_DEBUG_LOG', true);define('SAVEQUERIES', true);
WordPress Coding Standards
https://codex.wordpress.org/WordPress_Coding_Standards
i18nhttps://codex.wordpress.org/I18n_for_WordPress_Developers
Object Oriented Yaz
Array Tipinde Sakla
do_action( $tag, $arg… );
apply_filters( $tag, $value, $param…);
Güncel TutSürüm Yayınla
PHP versiyonuna dikkat
sanitize_*$wpdb->prepare()
esc_*nonce
WordPress API’lerini kullan
Geri uyumluluk = Sorumluluk
Önce Deprecate
Kullanıcıları Dinle
https://wordpress.org/support/view/plugin-committer/kullanici-adi
Sorular?