WordPress eklenti geliştirmeye başlama kılavuzu: ilk işlevsel modülünüzü sıfırdan bir'e oluşturun.

2 dakika okuma.
2026-03-19
2026-06-03
2,713
Aşağıdaki bağlantılar üzerinden alışveriş yaptığınızda, sizin için ek bir maliyet olmadan komisyon kazanıyorum.

Neden özel bir WordPress eklentisi geliştirmeye ihtiyaç duyulur?

WordPress’in yerleşik özellikleri ve mevcut eklentileri belirli iş ihtiyaçlarını tam olarak karşılayamadığında, özel eklentiler geliştirmek en doğrudan çözüm haline gelir. Özel eklentiler, WordPress’in çekirdek dosyalarını değiştirmeye gerek kalmadan sisteme istediğiniz her özelliği eklemenizi sağlar. Bu, WordPress güncellemelerinden sonra özelliklerinizin kaybolmamasını sağlar ve aynı zamanda özelliklerin modüler hale gelmesini, farklı siteler arasında kolayca taşınmasını ve yönetilmesini mümkün kılar. Temaları değiştirmeye kıyasla bu yöntem daha esnek ve uygulanabilir bir çözümdür.functions.phpDosyalar ve eklentiler, işlevlerin yeniden kullanılması açısından daha iyi bir seçenektir. Kodunuzu temadan ayırarak projenizin esnekliğini ve sürdürülebilirliğini artırırlar.

Geliştirme öncesi ortam ve bilgi hazırlığı

Kod yazmaya başlamadan önce, uygun bir geliştirme ortamı oluşturmanız ve gerekli bilgi temellerini öğrenmeniz gerekmektedir.

Yerel Geliştirme Ortamının Kurulması

Stabil ve izole bir yerel geliştirme ortamı çok önemlidir. PHP, MySQL ve Apache/Nginx içeren entegre bir ortamı hızlı bir şekilde kurmak için Local by Flywheel, XAMPP veya MAMP gibi araçların kullanılması önerilir. Lütfen PHP sürümünüzün 7.4’ün üzerinde, MySQL sürümünüzün 5.6’nın üzerinde olduğundan emin olun ve en yeni sürümdeki WordPress’i yükleyin.wp-config.phpÖnerilen değişiklik şu şekildedir:WP_DEBUGSabit, olarak ayarlandı.trueHata bilgilerini geliştirme sürecinde gösterebilmek için.

Tavsiye edilen okuma WordPress eklenti geliştirme eksiksiz rehberi: İlk işlevsel eklentinizi sıfırdan bir'e oluşturma

Gerekli PHP ve WordPress API bilgileri

Eklentiler geliştirmek için temel PHP bilgisine sahip olmak gerekmektedir; bu bilgiler arasında değişkenlerin, fonksiyonların, sınıfların ve ad alanlarının kullanımı ile veritabanlarıyla güvenli bir şekilde çalışma yer almaktadır. Daha da önemlisi, WordPress tarafından sağlanan zengin API’lere aşina olmak önemlidir; örneğin eylem kancaları (action hooks) ve filtre kancaları (filter hooks). Eylem kancaları, belirli anlarda özel kodların çalıştırılmasına olanak tanırken, filtre kancaları verilerin değiştirilmesine imkan verir. Eklentinin işlevlerinin gerçekleştirilmesi, bu kancaların ustaca kullanımına büyük ölçüde bağlıdır.

UltaHost WordPress Sunucusu
30 gün iade garantisi, sınırsız bant genişliği ve veritabanı kullanımı, ücretsiz DDoS koruması; 3 yıllık abonelikte indirim (50%).

İlk eklentinin temel yapısını oluşturma

Daha sonra, bir “Hello World” eklentisi oluşturarak eklentilerin temel yapısını anlayacağız.

Ana eklenti dosyasının temel yapısı

Her eklentinin, eklentinin meta bilgilerini içeren bir ana dosyası olmalıdır. Lütfen bu dosyayı WordPress kurulum dizininizin altına yerleştirin.wp-content/pluginsDosya içinde, örneğin “Yeni_Klasör” adında yeni bir klasör oluşturun.my-first-pluginBu klasör içinde, ana PHP dosyasını oluşturabilirsiniz; dosyanın adı “main.php” olabilir.my-first-plugin.phpBu dosyanın en üst kısmına, standart bir eklenti bilgi başlık yorumu eklemelisiniz.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个学习用的示例插件,用于在管理后台显示欢迎信息。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Bu yorum bloğu zorunludur; WordPress, bu bloğa dayanarak arka plandaki eklentiler listesinde eklentinizi tanır ve gösterir.

Arka plan yönetim menü sayfası oluşturun.

İşlevin WordPress arka planında görünür olması için bir yönetim menüsü sayfası eklememiz gerekiyor. Eklentinin ana dosyasına kod eklemeye devam edin. Kullanacağımız…add_action()Fonksiyon monte edildi.admin_menuBu hareket, o kancaya bağlı.

Tavsiye edilen okuma Sıfırdan uzmana: WordPress eklenti geliştirmenin eksiksiz rehberi ve en iyi uygulamaları.

// 添加管理菜单
function mfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限(管理员)
        'my-first-plugin', // 菜单slug
        'mfp_admin_page_content', // 渲染页面内容的函数
        'dashicons-smiley', // 图标(使用Dashicon)
        6 // 菜单位置
    );
}
add_action('admin_menu', 'mfp_add_admin_menu');

// 定义管理页面的内容
function mfp_admin_page_content() {
    ?&gt;
    <div class="wrap">
        <h1>İlk eklentime hoş geldiniz!</h1>
        <p>Bu, basit bir WordPress eklenti örneğidir.</p>
    </div>
    &lt;?php
}

Bu kod, WordPress arka planındaki sol taraftaki navigasyon çubuğuna “Benim Eklentilerim” adında bir üst düzey menü öğesi ekler ve bu menüye tıklandığında bir hoş geldin sayfası görüntülenir. Fonksiyon adlarının önüne kendi öneklerinizi eklemeniz iyi olacaktır (örneğin: myPluginFunction()).mfp_Diğer eklentilerin veya temaların fonksiyon adlarıyla çakışmayı önlemek için.

İlk basit işlevi yazın.

Şimdi, basit bir site tarafı özelliği ekleyelim. Örneğin, her makalenin içeriğinin sonuna otomatik olarak özelleştirilmiş bir metin parçası ekleyelim. Bunun için şu yöntemi kullanacağız:the_contentFiltre kancası (Filter Hook).

// 在文章内容后添加自定义文本
function mfp_append_text_to_content($content) {
    if (is_single()) { // 仅在单篇文章页面生效
        $custom_text = '<p><em>— Bu metin, ilk eklentim tarafından geliştirilmiştir.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter('the_content', 'mfp_append_text_to_content');

Bu özellik, filtrelerin temel kullanımını göstermektedir: Orijinal içeriği alır ve değiştirildikten sonra geri döndürür. Bu, çok güçlü ve sık kullanılan bir moddur.

hosting.com Paylaşımlı Barındırma
AMD EPYC CPU'lar, NVMe SSD depolama ve LiteSpeed ile yüksek performans, 7/24, 7x7 uzman şirket içi destek, SSL, kaba kuvvet, kötü amaçlı yazılım ve DDoS koruması dahil gelişmiş güvenlik önlemleri, 73%'ye kadar tasarruf

Eklenti Geliştirme İleri Uygulamaları ve Standartları

Temel özellikler gerçekleştirildikten sonra, en iyi uygulamalara uyum sağlamak eklentinizin daha sağlam ve daha güvenli olmasını sağlar.

Eklentilerin etkinleştirilmesi ve kaldırılması sırasında yapılan işlemler

Kullanıcılar bir eklentiyi etkinleştirdiğinde veya sildiğinde, veritabanı tabloları oluşturmanız, varsayılan ayarları belirlemeniz veya eklentinin ürettiği verileri temizlemeniz gerekebilir. WordPress, bu durumları yönetmek için özel “hook’lar” (bağlantı noktaları) sunar.

Kayıt aktivasyonu ve kaldırma işlemleri için gerekli kodlar, eklentinin ana dosyasında bulunmalı ve oradan yönetilmelidir.register_activation_hookregister_uninstall_hookFonksiyonun uygulanması. Unutmayın ki, kaldırma işlemi için kullanılan “hook” (düğüm/kanca) bir statik metot veya bağımsız bir fonksiyon olmalıdır.

Tavsiye edilen okuma WordPress eklenti geliştirme tam rehberi: Sıfırdan bir eklenti oluşturma

// 插件激活时执行的操作
function mfp_plugin_activation() {
    // 例如:在选项表中添加一个默认设置
    add_option('mfp_default_greeting', '你好,欢迎光临!');
}
register_activation_hook(__FILE__, 'mfp_plugin_activation');

// 插件卸载时执行的操作
function mfp_plugin_uninstall() {
    // 删除插件创建的选项
    delete_option('mfp_default_greeting');
    // 注意:谨慎操作,此处可删除自定义数据库表
}
register_uninstall_hook(__FILE__, 'mfp_plugin_uninstall');

Güvenlik, yerelleştirme ve performans hususları

Güvenlik, eklenti geliştirmede en önemli hususlardan biridir. Tüm kullanıcı girdileri (örneğin form gönderimleri, URL parametreleri) doğrulanmalı ve temizlenmelidir. WordPress, bu amaç için birçok fonksiyon sunmaktadır.sanitize_text_field(), esc_html(), wp_kses(), prepare()(Veritabanı sorguları için) Bu, size yardımcı olacaktır. Kullanıcı girdilerine asla doğrudan güvenmeyin ve bunları ne sayfaya ne de veritabanına doğrudan çıkartmayın.

Eğer eklentiniz uluslararası kullanıcılara yönelikse, yerelleştirmeyi (i18n) desteklemeniz gerekmektedir.__()_e()`wait` ve diğer fonksiyonlar, çevrilmeye ihtiyaç duyan tüm metin dizelerini kapsar.

InterServer Paylaşımlı Barındırma
Paylaşımlı hosting aylık $2.50 USD, ilk ay $0.1 USD promosyon kodu tryinterserver, 461 bulut uygulaması komut dosyası, tek tıklamayla yükleme.

Performans açısından, gereksiz veritabanı sorgulamalarından veya kaynak yoğun işlemlerden kaçının. Önbelleği (örneğinTransient API) mantıklı bir şekilde kullanın ve betikleri ile stil şablonlarını doğru bir şekilde yerleştirin.wp_enqueue_script()wp_enqueue_style()Doğru şekilde kuyruğa eklenirler ve yalnızca ihtiyaç duyulan sayfalarda yüklenirler.

Eklentileri paketleme ve dağıtma

Geliştirme işlemi tamamlandıktan sonra, eklenti klasörünü ZIP dosyası olarak sıkıştırabilirsiniz. Kullanıcılar, WordPress arayüzündeki “Eklentiler -> Eklenti Yükle -> Eklenti Yükle” sayfasından doğrudan bu eklentiyi yükleyebilirler.

Eğer WordPress’in resmi eklenti dizinine göndermek istiyorsanız, gönderim kılavuzlarına sıkı sıkıya uymalısınız. Bu kılavuzlar, kod standartlarını (WordPress Kodlama Standartlarının kullanılması önerilir), eksiksiz dokümantasyon ve uyumluluk beyanlarını içerir; ayrıca, GPL lisansını ihlal eden herhangi bir kodun dahil edilmediğinden emin olmanız gerekir. 2026 yılı itibarıyla, eklenti dizininin inceleme standartları platformun gelişimiyle birlikte güncellenecektir; bu nedenle gönderim yapmadan önce en güncel gereklilikleri dikkatlice incelemelisiniz.

Özetle.

WordPress eklenti geliştirme, kişiselleştirilmiş fikirleri güçlü özelliklere dönüştürme sürecidir. Geliştirme motivasyonunu anlamakla başladık, yerel bir ortam oluşturduk ve eklenti dosya yapısını oluşturma, arka plan menülerini ekleme, temel özellikleri gerçekleştirme ve etkinleştirme/kaldırma gibi yaşam döngüsü olaylarını adım adım uyguladık. Daha da önemlisi, güvenlik, yerelleştirme ve performans gibi kritik geliştirme standartlarını tartıştık; bunlar eklentinin kalitesini ve güvenilirliğini sağlamanın temel taşlarıdır. Geliştirmeye ilk adımı atmanın anahtarı pratik yapmaktır. Bu makalenin “Hello World” örneğinden yola çıkarak, WordPress’in geniş API’sini ve eklenti sistemini keşfetmeye devam edin; böylece karmaşık ve kullanışlı eklentiler oluşturabilir ve WordPress’in yeteneklerini derinlemesine genişletebilirsiniz.

Sıkça Sorulan Sorular.

WordPress eklentisi geliştirmek için PHP’de ustalaşmak zorunda mıyım?

Evet, WordPress eklentileri geliştirmek için sağlam bir PHP temeline sahip olmak gereklidir. Çünkü WordPress kendisi PHP ile oluşturulmuştur ve eklentilerin temel mantığı da PHP kullanılarak yazılmıştır. PHP’nin fonksiyonlarını, sınıflarını, ad alanlarını (namespace’leri) ve nesne yönelimli programlamanın temel kavramlarını anlamanız gerekir. Ayrıca, etkileşimli ön uç (frontend) özellikleri oluşturmak için temel HTML, CSS ve JavaScript bilgilerine sahip olmak da çok faydalıdır.

Eklentilerin (plugins) ve temaların (themes) functions.php dosyalarının işlevleri arasındaki temel fark nedir?

İki ana fark, kodun kullanım amacı ve taşınabilirliğidir.functions.phpMevcut temanın görünümü ve özellikleriyle yakından ilgili kodların eklenmesi için kullanılır; tema değiştirildiğinde bu özellikler devre dışı kalır. Öte yandan eklentiler, belirli bir işlevi yerine getirmek için tasarlanmış modüllerdir ve kodları temadan bağımsızdır. Amacı, herhangi bir temada çalışabilen belirli bir dizi özellik sunmaktır. Bu nedenle, genel kullanıma yönelik özellikler (örneğin iletişim formları, SEO optimizasyonu) eklenti olarak geliştirilmelidir; temanın düzeni ve stilinden yoğun şekilde etkilenen özellikler ise temaya özgü olarak yerleştirilmelidir.functions.phpOrta.

Farklı WordPress sürümleri arasındaki uyumluluk sorunlarıyla nasıl başa çıkılır?

Uyumluluk sorunlarını çözmenin anahtarı, API’leri dikkatli bir şekilde kullanmak ve koşullu kontroller yapmaktır. Geliştirme sırasında, kullandığınız fonksiyonların, sınıfların veya eklentilerin hangi sürümlerde tanıtıldığını öğrenmek için WordPress’in resmi kılavuzuna başvurmalısınız. Eski sürümleri desteklemeniz gerekiyorsa, bunun için uygun çözümler mevcuttur.function_exists()class_exists()Belirli bir özelliğin kullanılabilir olup olmadığını kontrol edin; kullanılamıyorsa, zarif bir yedekleme çözümü sunun veya kullanıcıya dostane bir uyarı mesajı gösterin. Ayrıca, eklentinin baş kısmındaki yorumlarda test edilen WordPress sürüm aralığını açıkça belirtin.

Bir eklenti için ayarlanabilir bir kontrol paneli nasıl oluşturulur?

Eklentiler için kontrol paneli oluşturmanın standart yolu, WordPress’in Settings (Ayarlar) API’sini kullanmaktır. Bu süreç şunları içerir:register_setting()Bir ayar grubu ve alanı kaydedin, kullanın.add_settings_section()add_settings_field()Ayar bölgesini tanımlayan bölümleri ve belirli alanları oluşturun; ardından bunları menü sayfasındaki geri çağırma fonksiyonlarında kullanın.settings_fields()do_settings_sections()Formu renderlemek için kullanılır. Settings API, form gönderimindeki nonce doğrulamasını, yetki kontrolünü ve ayarların kaydedilmesini otomatik olarak gerçekleştirir; bu da ayar sayfaları geliştirmek için en iyi uygulamadır.

Eklenti geliştirme sürecinde veritabanına bağlanmanın doğru yolu nedir?

PHP’nin MySQL fonksiyonlarını asla doğrudan kullanmayın. WordPress bunun için gerekli araçları sağlamaktadır.wpdbKüresel sınıflar, veritabanıyla güvenli bir şekilde etkileşim kurmak için kullanılır. Bunu, küresel değişkenler aracılığıyla yapabilirsiniz.$wpdbBuna erişmek için… Sorgulamalarda, özellikle de kullanıcı tarafından girilen verilerle ilgili sorgulamalarda mutlaka…$wpdb->prepare()SQL enjeksiyon saldırılarını önlemek için bazı yöntemler bulunmaktadır. Özel veritabanı tabloları oluşturulurken, tablonun oluşturulmasına ilişkin SQL komutları, eklentinin etkinleştirilme işlemi sırasında (activation hook) gerçekleştirilmelidir ve ayrıca güvenli kodlama teknikleri kullanılmalıdır.$wpdb->get_charset_collate()Karakter setinin WordPress ayarlarıyla uyumlu olduğundan emin olun.