WordPress Eklentilerinin Temel Kavramları ve Yapısı
Kod yazmaya başlamadan önce, WordPress eklentilerinin temel yapısını anlamak çok önemlidir. Bir eklenti, esasen bir veya daha fazla PHP dosyasından oluşur ve WordPress tarafından sağlanan API (Uygulama Arayüzü) aracılığıyla web sitesinin işlevlerini genişletir. Eklentiler, yalnızca kısa bir kod parçası ekleyecek kadar basit olabileceği gibi, tam bir yönetim sistemi oluşturacak kadar karmaşık da olabilir.
Her eklentinin, genellikle eklentinin adıyla adlandırılan bir ana dosyası olmalıdır. Örneğin: my-first-plugin.phpBu dosyanın en üst kısmında, WordPress’in eklenti bilgilerini tanımasının temelini oluşturan belirli bir eklenti başlık yorumu bulunmalıdır. Bu yorum bloğu en azından eklentinin adını ve açıklamasını içermelidir.
Standart bir eklenti yapısı genellikle ana eklenti dosyasını, isteğe bağlı JavaScript ve CSS kaynak dosyalarını, dil çeviri dosyalarını ve şablon dosyalarını içerir. İyi bir organizasyon alışkanlığı, farklı türdeki dosyaları farklı klasörlere koymaktır; örneğin, tüm JavaScript dosyalarını aynı klasöre yerleştirmek uygundur./jsKlasörü ve CSS dosyasını oraya koyun./cssKlasörler, kodun netliğini ve sürdürülebilirliğini korumaya yardımcı olur.
Tavsiye edilen okuma WordPress Eklenti Geliştirme Kılavuzu: Sıfırdan Başlayarak Özel İşlevler Oluşturmanın Temel Teknikleri。
WordPress eklentileri, “kancalar” (Hooks) mekanizması aracılığıyla çekirdek sistemle etkileşim kurar. Kancalar iki türe ayrılır: Eylemler (Actions) ve Filtreler (Filters). Eylemler, belirli WordPress işlem noktalarında (örneğin makale yayınlama, yönetim panelinin yüklenmesi sırasında) özel kodlar eklemenize olanak tanır. Filtreler ise WordPress’in işlem sırasında ürettiği verileri (örneğin makale içeriği, başlık) değiştirip ardından bunları yeniden çıktı olarak vermenize imkan tanır. Kancaları anlamak ve ustaca kullanmak, eklenti geliştirmenin anahtarıdır.
İlk basit eklentinizi oluşturun.
İlk adımı atmak için gerçek bir örnek kullanalım: Web sitesinin alt kısmında özelleştirilmiş metin gösterecek bir eklenti oluşturalım. Bu örnek, dosya oluşturulmasından işlevlerin etkinleştirilmesine kadar eklentinin oluşturulma sürecinin tamamını kapsayacaktır.
Öncelikle, WordPress’in kurulum dizini altındaki… /wp-content/plugins/ Klasörün içinde “my-footer-text” adında yeni bir klasör oluşturun. Daha sonra, bu klasörün içinde aynı adı taşıyan bir PHP dosyası oluşturun. my-footer-text.php。
Bundan sonra, bu ana dosyanın üst kısmına gerekli eklenti başlık bilgilerini ekleyin. Bu, WordPress’e bunun bir eklenti olduğunu bildirir ve eklentinin ayrıntılarını gösterir.
<?php
/**
* Plugin Name: 我的页脚文本
* Plugin URI: https://www.yourwebsite.com/my-footer-text
* Description: 一个简单的插件,用于在网站页脚添加自定义文本。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* Text Domain: my-footer-text
*/ Şimdi, temel özellikleri ekleyelim. Bunun için şu yöntemi kullanacağız: wp_footer Bu eylem hook’u, sayfanın alt kısmında (genellikle) çalışır. </body> Bir fonksiyon oluşturarak metni çıktı olarak verelim ve ardından bu fonksiyonu o “hook”a (bağlantı noktasına) bağlayalım.
Tavsiye edilen okuma WordPress eklenti geliştirme: Temel tekniklerden ileri düzeye kadar kapsamlı bir rehber.。
// 定义在页脚输出文本的函数
function myfootertext_display_text() {
echo '<p style="text-align: center; color: #666;">© 2026 Benim Web Sitem. Tüm hakları saklıdır.</p>';
}
// 使用 add_action 将函数挂载到 wp_footer 钩子
add_action( 'wp_footer', 'myfootertext_display_text' ); Dosyayı kaydettikten sonra, WordPress yönetim panelinize giriş yapın ve “Eklentiler” menüsüne gidin. “Benim Sayfa Altı Metnim” adlı eklentiyi eklenti listesinde görmelisiniz. “Etkinle” butonuna tıklayın, ardından web sitenizin ön yüzüne gidin ve sayfanın en alt kısmına kadar kaydırın; eklediğiniz telif hakkı metnini orada görebileceksiniz. Böylece, ilk tam işlevli eklentiniz başarıyla çalışmaya başlamış olur.
Eklenti geliştirmenin temel teknolojileri ve API’ler
Daha karmaşık ve profesyonel eklentiler geliştirmek için, WordPress’in sunduğu bir dizi temel teknolojiyi ve API’yi öğrenmek gereklidir. Bu araçlar, eklentilerin WordPress çekirdeğiyle derinlemesine entegre olmasını sağlayan köprülerdir.
Öncelikle, Kısa Kod (Shortcode) API’si, kullanıcıların makalelerde veya sayfalarda kullanabilecekleri basit etiketler oluşturmanıza olanak tanır. Örneğin, şöyle bir kısa kod oluşturabilirsiniz: [show_recent_posts] En yeni makale listesini göstermek için kısa kod kullanın. add_shortcode() Bir fonksiyon, kısa bir kod ve bu koda karşılık gelen işlem fonksiyonunu kaydedebilir.
İkincisi, ayar seçeneklerini yönetmek için API’lerin kullanılması çok önemlidir. Eklentiniz kullanıcıların bazı parametreleri ayarlamasını gerektirdiğinde, WordPress arayüzünde bir ayar sayfası oluşturmanız ve kullanıcıların yaptığı ayarları veritabanına güvenli bir şekilde kaydetmeniz gerekir. WordPress bunun için gerekli araçları sağlar. add_options_page() Bu fonksiyon, ayar sayfasını eklemek için kullanılır; ayrıca… register_setting()、add_settings_section() 和 add_settings_field() Bir dizi fonksiyon kullanarak ayar formlarını oluşturur ve doğrularız. Veriler genellikle… update_option() 和 get_option() Fonksiyonlar depolanır ve okunur.
Özel makale türleri ve özel kategoriler, WordPress içerik modelini genişletmenize olanak tanır. Ürünleri, portföyleri veya etkinlikleri yönetmek için bir eklenti geliştirmeniz gerekiyorsa, bunları kullanabilirsiniz. register_post_type() 和 register_taxonomy() Fonksiyonlar, yerleşik “makale” ve “sayfa” içerik türleriyle aynı şekilde kapsamlı bir arka uç yönetim arayüzüne sahip yeni içerik türleri oluşturabilir.
Veritabanı işlemleri de başka bir önemli konudur. Doğrudan SQL sorguları kullanılabilir; ancak WordPress’in veritabanı sınıflarının kullanılması daha tavsiye edilir. $wpdbBir dizi yöntem sunar (örneğin: $wpdb->get_results()、$wpdb->insert()Veritabanı ile güvenli ve kolay bir şekilde etkileşim kurmak için gerekli altyapı sağlanmıştır; ayrıca tablo önekleri ve SQL enjeksiyonu gibi güvenlik sorunlarına karşı önlemler alınmıştır.
Tavsiye edilen okuma Sıfırdan Başlayın: WordPress Eklenti Geliştirmenin Temel Adımlarını ve En İyi Uygulamalarını Öğrenin。
Son olarak, AJAX işlemleri akıcı bir kullanıcı deneyimi oluşturmak için gereklidir. WordPress, hem yönetim arayüzü hem de web sitesinin ön yüzü için hazır AJAX arayüzleri sunar. Bunları kullanmanız gerekmektedir. wp_ajax_my_action 和 wp_ajax_nopriv_my_action Bu iki eylem hook’u, giriş yapan kullanıcılar ve giriş yapmamış kullanıcıların AJAX isteklerini ayrı ayrı işlemek için kullanılır.
Eklenti Güvenliği, Optimizasyonu ve Yayın Hazırlığı
Doğru işlevlere sahip bir eklenti geliştirmek sadece ilk adımdır; güvenli, verimli olmasını sağlamak ve başkalarının kullanımına hazır hale getirmek, “uzmanlık” yolunda atılması gereken temel adımlardır.
Güvenlik en önemli önceliktir. Kullanıcıların girdilerine asla güvenmeyin. Tüm… $_GET、$_POST 或 $_REQUEST Elde edilen verilerin hepsi doğrulanmalı, temizlenmeli ve uygun şekilde işlenmelidir (örneğin, kötü niyetli içeriklerden arındırılmalıdır). WordPress, bu işlemleri gerçekleştirmek için birçok fonksiyon sunar:sanitize_text_field() Metni temizlemek için kullanılır.intval() Değerin bir tam sayı olduğundan emin olun.wp_kses() Belirli HTML etiketlerinin geçmesine izin verilir.esc_html() 和 esc_url() Çıktı sırasında escape işlemi yapmak için kullanılır. Veritabanı sorgularını gerçekleştirirken mutlaka bunu kullanın. $wpdb->prepare() SQL enjeksiyonunu önlemek için parametreleri hazırlayın.
Performans optimizasyonu da aynı derecede önemlidir. Eklentiler her yüklendiğinde pahalı veritabanı sorgularının gerçekleştirilmesinden kaçının. Sık sık değişmeyen veriler için WordPress’in geçici önbellekleme (transient caching) API’sini kullanmalısınız. set_transient() 和 get_transient() Bu fonksiyon, verileri geçici olarak veritabanına kaydeder. Eylem (action) ve filtre (filter) hook’larını mantıklı bir şekilde kullanın; kodu gereksiz yerlere yerleştirmeyin. Ayrıca, JavaScript ve CSS dosyalarınızın doğru bir şekilde sıralandığından (enqueue edildiğinden) emin olun. wp_enqueue_script() 和 wp_enqueue_style() Fonksiyonları yalnızca ihtiyaç duyulan sayfalarda yükleyin.
Uluslararasılaştırma (i18n), eklentinizin dünya genelindeki kullanıcılar tarafından kullanılmasını sağlar. Bunu gerçekleştirmek için… __() 或 _e() Tüm kullanıcıya yönelik metinleri `wait` adlı çeviri fonksiyonu ile kapsayın. Eklentiler için bunu bir araç olarak kullanın. /languages Katalog, dosyaların ve diğer içeriklerin saklandığı bir yerdir. .pot Dosya ve çevrilmiş içerik… .mo Dosya: Eklentinin başlık kısmında tanımlanmıştır. Text Domain Burada kullanılan metin alanıyla uyumlu olmalıdır.
Son olarak, yayınlamaya hazırlanın. Açık ve anlaşılır bir metin yazın. readme.txt Dosyanın formatı WordPress’in resmi standartlarına uygun olmalıdır. Eklentinin işlevlerini, kurulum adımlarını, sık karşılaşılan sorunları vb. açıklamalısınız. Eklentinizin farklı PHP sürümleri, WordPress sürümleri ve çeşitli temalarla uyumluluğunu kapsamlı bir şekilde test edin. Kodunuzu WordPress’in resmi eklenti dizinine göndermeyi veya kendi web siteniz aracılığıyla dağıtmayı düşünebilirsiniz.
Özetle.
WordPress eklenti geliştirme, temel yapıyı anlamakla başlayan, ardından çekirdek API’leri kademeli olarak öğrenen ve sonunda güvenlik, performans ve yayınlanabilirliğe önem veren bir süreçtir. Basit eklentiler oluşturarak geliştiriciler, eklenti mekanizmaları ve dosya düzenlemeleri konusunda hızla bilgi edinebilirler. Kısa kodlar, ayar seçenekleri ve özelleştirilebilir içerik türleri gibi API’leri derinlemesine öğrenmek, işlevsel eklentiler geliştirmenin temelidir. Güvenliği öncelikli tutmak, performansı optimize etmek ve uluslararasılaştırmayı gerçekleştirmek ise bir eklentinin “kullanılabilir” olmaktan “profesyonel” bir hale gelmesinin anahtarıdır. Bu adımlara ve en iyi uygulamalara uyarak geliştiriciler, sıfırdan başlayarak belirli ihtiyaçları karşılayan, stabil ve güvenilir özelleştirilmiş WordPress özellikleri oluşturabilir ve başlangıç seviyesinden uzmanlığa doğru ilerleyebilirler.
Sıkça Sorulan Sorular.
WordPress eklentisi geliştirmek için hangi ön koşul bilgilerine ihtiyaç vardır?
WordPress eklentisi geliştirmek için PHP programlama diline dair temel bilgilere sahip olmanız gerekir; çünkü eklentiler esas olarak PHP ile yazılır. Aynı zamanda, ön uç görünümünü ve etkileşimini yönetebilmek için HTML, CSS ve JavaScript konularında da temel bilgilere ihtiyacınız vardır. WordPress’in temel işlemleri ve kavramlarına (makaleler, sayfalar, temalar, eklentiler vb.) aşina olmak, eklentilerin sisteme nasıl entegre edileceğini anlamanıza büyük ölçüde yardımcı olacaktır.
Eklentilerin ana dosyalarının adlandırılması ve konumlandırılması konusunda herhangi zorunlu kurallar veya gereksinimler var mı?
Eklentinin ana dosyası herhangi bir isme sahip olabilir, ancak mutlaka belirtilen konumda bulunmalıdır. /wp-content/plugins/ Bir dizinin içindeki bağımsız bir klasörde veya doğrudan o dizinin içine (tek dosyalı eklentiler için). En önemlisi, ana dosyanın en üst kısmında doğru eklenti başlık yorumlarının bulunması gerekmektedir; bu yorumlar, eklentinin işlevlerini ve gereken bilgileri açıklar. Plugin Name: Bu bir zorunlu alandır; WordPress, eklentileri tanımak ve listelemek için bu bilgiye ihtiyaç duyar.
Action hook’ları ile filter hook’ları arasındaki fark nedir?
Eylem kancaları, WordPress’in belirli zaman noktalarında özel bir kod parçasını “ekleyerek” belirli bir “eylemi” gerçekleştirmenize olanak tanır; bu kodlar doğrudan bir değer döndürmez. Örneğin, bir makale yayınlandığında e-posta göndermek gibi. add_action() Function mounting.
Filtre hook’ları, verileri “değiştirmek” için kullanılır. Bir değer alır, bu değeri değiştirmenize izin verir ve ardından bu değiştirilmiş değeri geri döndürmeniz gerekir. Örneğin, bir makalenin başlığını veya içeriğini değiştirmek gibi. add_filter() Fonksiyon montajı (function mounting). İkisi arasındaki farkı anlamak, hook’ların etkili bir şekilde kullanılmasının anahtarıdır.
Kullanıcı girdilerini veritabanına nasıl güvenli bir şekilde kaydedebiliriz?
Kullanıcı girdilerini asla doğrudan veritabanı sorgularına eklemeyin. Metinler için uygun işlemleri kullanın. sanitize_text_field() Temizlik işlemi yapın. Tam sayılar için… intval()Zengin metin (rich text) için kullanılır. wp_kses_post() Güvenli HTML etiketlerinin kullanılmasına izin verir. Kullanıldığında… $wpdb Sınıfları sorgularken, lütfen mutlaka bunu kullanın. $wpdb->prepare() Sorgu ifadelerini biçimlendirmek için yöntemler kullanılabilir; bu da SQL enjeksiyon saldırılarını etkili bir şekilde önleyebilir.
Neden eklentim arka planda bir menü ekledi, ancak kullanıcılar bunu göremiyor?
Bu genellikle kullanıcı rolü ve yetkileri (kapasiteler) ile ilgilidir. Kullanırken… add_menu_page() İşlevler için yönetim menüsü eklenirken, gerekli bir yetki parametresi belirtilmelidir (örneğin…) manage_optionsYalnızca bu yetkiye sahip kullanıcı rolleri (örneğin yöneticiler) bu menüyü görebilir. Eklentinin işlevlerine göre uygun bir yetki seçmeniz veya başka bir çözüm kullanmanız gerekebilir. add_cap() Kullanıcı rollerine uygun yetkiler atayın.
Bir sonraki adım, bundan sonra ne yapmalıyım?
Daha fazla okuma ve pratik bilgiler.
Aşağıdaki içerikler bu makalenin konusuyla ilgilidir ve daha fazla okumak için uygundur. Öncelikle mevcut sorununuza en yakın makaleden başlayın, sonra çevresel konulara doğru ilerleyin, genellikle daha iyi sonuçlar alırsınız.
- WordPress Eklenti Geliştirme Kılavuzu: Sıfırdan Başlayarak İlk Özel Eklentinizi Oluşturun
- WordPress Eklenti Geliştiricisi Olmak: Sıfırdan Bir’e Kapsamlı Rehber
- Sıfırdan Başlayın: Modern WordPress Tema Geliştirme Sürecinin Tamamı ve En İyi Uygulamaları
- WordPress Eklenti Geliştirme Kılavuzu: Başlangıçtan Uzmanlığa Kadar Profesyonel Eklentiler Oluşturma
- Sıfırdan Bir: WordPress Tema Geliştirmenin Temel Teknolojilerini ve Pratik Süreçlerini Kapsamlı Bir Şekilde Öğrenin