WordPress Eklenti Geliştirme Kılavuzu: Sıfırdan Başlayarak Ticari Sınıf Eklentiler Oluşturma

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

Geliştirme Ortamı ve Proje Başlatma

Kod yazmaya başlamadan önce, stabil ve izole bir geliştirme ortamı çok önemlidir. Bu, yalnızca üretim sitenizi korumakla kalmaz, aynı zamanda mevcut sitenin zarar görmesinden endişe etmeden geliştirmeye odaklanmanızı da sağlar.

Yerel geliştirme ortamını kurmak.

Yerel sunucu yazılım paketlerini kullanmanızı öneririm; örneğin Local by Flywheel veya Laragon. Bu araçlar, WordPress’i tek tıklamayla kurmanıza ve PHP, MySQL ve web sunucusunu otomatik olarak yapılandırmanıza olanak tanır. Yerel ortamda, çevrimiçi kullanıcıları etkilemeyecek şekilde eklentileri istediğiniz gibi yükleyebilir, etkinleştirebilir ve test edebilirsiniz.

Eklenti temel dosya yapısını oluşturma

Yapısı net bir eklenti projesi, başarının yarısıdır. Öncelikle, yerel WordPress kurulumunuzda… wp-content/plugins Dizin içinde, eklentinizin adıyla bir klasör oluşturun, örneğin: my-awesome-pluginBu klasörde oluşturmanız gereken ilk ve en önemli dosya, ana eklenti dosyasıdır. Genellikle bu dosya, eklenti klasörünün adıyla aynı adı taşır; örneğin: my-awesome-plugin.php

Tavsiye edilen okuma Sıfırdan Başlayın: WordPress Eklenti Geliştirme Kapsamlı Rehberi ve Pratik Eğitim Kursu

Bu ana dosyanın başında, bir eklentinin tanınması için WordPress tarafından kullanılan standart bir eklenti başlık yorumu bulunmalı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%).
<?php
/**
 * Plugin Name:       我的超强插件
 * Plugin URI:        https://example.com/my-awesome-plugin
 * Description:       这是一个用于演示如何开发商业级WordPress插件的示例。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://yourwebsite.com
 * License:           GPL v2 or later
 * Text Domain:       my-awesome-plugin
 * Domain Path:       /languages
 */

WordPress kodlama standartlarını anlayın ve bunlara uyun.

Kod kalitesini, okunabilirliğini ve WordPress çekirdeğiyle uyumluluğunu sağlamak için WordPress’in resmi kodlama standartlarına uymak zorunludur. Bu standartlar, doğru girintilerin kullanılmasını, fonksiyon ve değişken isimlendirme kurallarını (küçük harfler ve alt çizgiler) ve dosyaların sonundaki PHP kapatma etiketlerini içerir. Kod düzenleyicilerine PHP_CodeSniffer aracının entegre edilmesi, kodun otomatik olarak kontrol edilmesi için önerilir.

Çekirdek kod yapısı ve hook (düğüm) mekanizması

WordPress’in eklenti API’sinin temeli, “Kancalar” (Hooks) sistemidir. Bu sistem, kodunuzun belirli zaman noktalarında WordPress’in temel işleyişine dahil olmasına olanak tanır; böylece işlevler değiştirilebilir veya yeni işlevler eklenir. Kancalar esas olarak iki türe ayrılır: Eylemler (Actions) ve Filtreler (Filters).

Eylem kancalarını kullanarak işlevleri gerçekleştirin.

Eylem kancaları, belirli olaylar meydana geldiğinde kod çalıştırmanıza olanak tanır; örneğin bir makalenin yayınlanması, bir kullanıcının giriş yapması veya yönetim arayüzünün yüklenmesi gibi. Bunu kullanabilirsiniz. add_action() Bu fonksiyon, özel fonksiyonunuzu bu “hook”lara (bağlantı noktalarına) bağlar.

Örneğin, WordPress başlatıldığında, özel bir makale türü oluşturmak isteyebilirsiniz. Bunun için “Custom Post Type” adında bir şey oluşturabilirsiniz. myplugin_setup_post_type Bu fonksiyonu oluşturduktan sonra, onu sisteme monte edin. init Bu hareket, o kancaya bağlı.

Tavsiye edilen okuma WordPress Eklenti Geliştirme Başlangıç Kılavuzu: Sıfırdan İlk Eklentinizi Oluşturun

function myplugin_setup_post_type() {
    register_post_type( 'book', [
        'public' => true,
        'label'  => '书籍'
    ] );
}
add_action( 'init', 'myplugin_setup_post_type' );

Verileri filtre kancaları kullanarak değiştirme

Filtre kancaları, kendilerine iletilen verileri değiştirmek için kullanılır. Verilerin kullanılmadan önce (örneğin bir sayfada gösterilmeden veya bir veritabanına kaydedilmeden önce) değiştirilmesine olanak tanır. add_filter() Filtre eklemek için bir fonksiyon kullanılır.

Örneğin, makale başlığının içeriğini değiştirmek istiyorsanız, bir fonksiyonu bağlayabilirsiniz. the_title Filtreler.

function myplugin_modify_title( $title ) {
    return '精选:' . $title;
}
add_filter( 'the_title', 'myplugin_modify_title' );

Eklenti yönetim arayüzü ve ayarlarını oluşturma

Profesyonel bir eklentinin genellikle, kullanıcıların seçenekleri ayarlayabilmesini sağlayan net bir arka uç yönetim arayüzüne ihtiyacı vardır. WordPress, basit ayar sayfalarından seçenek kartları içeren karmaşık menülere kadar çeşitli yöntemler sunar.

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 ayarları sayfasını oluşturma

Genellikle, bir eklenti için WordPress yönetim menüsünde üst düzey veya alt düzey bir menü öğesi oluşturursunuz ve ayar formunu görüntülemek için kullanılacak bir geri çağırma (callback) fonksiyonu ile ilişkilendirirsiniz. Bu işlem, belirli kodların kullanılmasını gerektirir. add_menu_page()add_submenu_page() İşlev.

Aşağıda, bir üst düzey menü öğesinin ve ilgili ayar sayfasının nasıl ekleneceğini gösteren bir örnek bulunmaktadır. Öncelikle, bir fonksiyon oluşturun. myplugin_settings_page_html Önce bir HTML formu oluşturun. Daha sonra, yönetici menüsü başlatıldığında (bu işlem belirli bir yöntemle yapılır)… admin_menu Bu sayfayı menü sistemine kaydedin.

İşlev myplugin_settings_page_html() {
    // Kullanıcı izinlerini kontrol edin
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <form action="/tr/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出安全字段
            settings_fields( 'myplugin_settings' );
            // 输出设置章节和字段
            do_settings_sections( 'myplugin' );
            // 输出提交按钮
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="tr"/></form>
    </div>
    &lt;?php
}

function myplugin_settings_page() {
    add_menu_page(
        &#039;My Plugin Settings&#039;,  // Sayfa başlığı
        &#039;My Plugin&#039;,  // Menü başlığı
        &#039;manage_options&#039;,  // Gerekli izinler
        &#039;myplugin&#039;,  // Menü slug&#039;ı
        &#039;myplugin_settings_page_html&#039;,  // Çağrılan fonksiyon
        &#039;dashicons-admin-generic&#039;,  // İkon
        20   // Konum
    );
}
add_action( &#039;admin_menu&#039;, &#039;myplugin_settings_page&#039; );

Kayıt Ayarları, Bölümler ve Alanlar

Yukarıdaki formun verileri kaydedebilmesi için, WordPress ayarları API’sini kullanarak ayarları, bölümleri ve alanları kaydetmeniz gerekmektedir. Bu, verilerin güvenli bir şekilde saklanmasını ve erişilmesini sağlar.

Tavsiye edilen okuma WordPress Eklenti Geliştirme Kılavuzu: İlk Özel Eklentinizi Sıfırdan Oluşturun

Öncelikle, kullanın. register_setting() Bir ayar grubu oluşturmak için kaydolun. Daha sonra, bunu kullanın. add_settings_section() Bir ayarlar bölümü ekleyin ve bunu kullanın. add_settings_field() Bölümlere belirli alanlar ekleyin.

function myplugin_settings_init() {
    // 注册一个新设置到 “myplugin_settings” 组
    register_setting( 'myplugin_settings', 'myplugin_options' );

// 在 “myplugin” 页面注册一个新章节
    add_settings_section(
        'myplugin_section_general',
        '常规设置',
        null, // 回调函数,可用于输出章节描述
        'myplugin'
    );

// 在 “myplugin_section_general” 章节注册一个字段
    add_settings_field(
        'myplugin_field_api_key',
        'API 密钥',
        'myplugin_field_api_key_html', // 渲染字段HTML的回调函数
        'myplugin',
        'myplugin_section_general',
        [ 'label_for' => 'myplugin_field_api_key' ]
    );
}
add_action( 'admin_init', 'myplugin_settings_init' );

function myplugin_field_api_key_html() {
    $options = get_option( 'myplugin_options' );
    ?>
    <input type="text" id="myplugin_field_api_key" name="myplugin_options[api_key]" value="<?php echo esc_attr( $options['api_key'] ?? '' ); ?>">
    <?php
}

Eklentilerin Güvenliği, Performansı ve Yayın Hazırlığı

Eklenti geliştirme işlemi tamamlandıktan sonra, kullanıcılara teslim edilmeden önce, sıkı güvenlik, performans ve uyumluluk kontrollerinden geçirilmesi gerekmektedir.

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.

Güvenlik en iyi uygulamalarını hayata geçirin.

Güvenlik, WordPress eklenti geliştirmenin can damarındır. Tüm kullanıcı girdilerini doğrulamalı, temizlemeli ve escape işlemi yapmalısınız. Kullanıcılardan veya veritabanından gelen verilere asla güvenmeyin. WordPress tarafından sağlanan fonksiyonları kullanın. sanitize_text_field()esc_html()esc_attr()wp_kses() Verileri işlemek için… Veritabanı sorgularını çalıştırırken mutlaka… $wpdb->prepare() SQL enjeksiyon saldırılarını önlemek için…

Performans optimizasyonu ve kod incelemesi yapmak

Performansı düşük eklentiler, tüm web sitesinin yavaşlamasına neden olabilir. Her sayfa yüklendiğinde çok sayıda veritabanı sorgusu veya karmaşık PHP işlemlerinin çalışmasından kaçının. WordPress’in geçici önbellek (transient cache) API’sini etkili bir şekilde kullanın.set_transient(), get_transient()Zaman alıcı işlemlerin sonuçlarını önbelleğe almak için bu yöntem kullanılır. Aynı zamanda, Query Monitor gibi eklentiler kullanılarak performans sorunları analiz edilir ve tespit edilir. Yayınlamadan önce kapsamlı bir kod incelemesi yapılır; kullanılmayan fonksiyonlar, gereksiz kodlar veya gereksiz kaynak yüklemelerinin olmadığından emin olunur.

Uluslararasılaştırmayı tamamlayın ve son paketlemeyi gerçekleştirin.

Eklentinizin dünya genelindeki kullanıcılar tarafından kullanılabilmesi için uluslararasılaştırma (i18n) işlemlerinin yapılması gerekmektedir. Bu, kullanıcıya yönelik tüm metinlerin farklı dillere çevrilmesi anlamına gelir. __()_e() Fonksiyonları kapsayın ve metin alanını (Text Domain) doğru bir şekilde ayarlayın. Ana eklenti dosyasının baş kısmında bunu zaten tanımlamışsınız. Text Domain: my-awesome-pluginDomain Path: /languagesDaha sonra, Poedit gibi araçları kullanarak oluşturabilirsiniz. .pot Şablon dosyası, çevirmenlerin farklı dillerde içerikler oluşturması için kullanılır. .po.mo Dosya.

Son olarak, net ve anlaşılır bir şey oluşturun. readme.txt Dosyanın formatı, WordPress.org eklenti dizininin gereksinimlerine uygun olmalıdır. Bu, eklenti açıklaması, kurulum kılavuzu, sık sorulan sorular, güncelleme kayıtları vb. içermelidir. Eklenti klasörünü sıkıştırın. .zip Dosya, ticari sınıfınızdaki eklenti hazır; kullanıcılara dağıtılabilir veya pazara sunulabilir.

Özetle.

WordPress eklenti geliştirme, fikirleri işlevsel bir gerçekliğe dönüştürme sürecidir. Sağlam bir geliştirme ortamı oluşturmak ve yapılandırılmış bir proje başlatmakla başlayan geliştiriciler, WordPress’in temelini oluşturan “kancalama sistemi”ni (hook system) derinlemesine anlamalı ve platformun özelliklerini eylemler (actions) ve filtreler (filters) aracılığıyla ustaca genişletmelidir. Kullanıcı deneyimini artırmak için kullanıcı dostu ve güvenli bir yönetim arayüzü oluşturmak önemlidir; bu da ayar API’lerinin (setting APIs) ustaca kullanılmasını gerektirir. Son olarak, yayınlamadan önce güvenlik, performans ve uluslararasılaştırma (internationalization) en önemli öncelikler arasındadır; böylece eklenti sadece güçlü ve kullanışlı olmakla kalmaz, aynı zamanda stabil ve güvenilir de olur. Bu rehberi takip ederek, ticari standartlara uygun WordPress eklentileri geliştirebilirsiniz.

Sıkça Sorulan Sorular.

WordPress eklentisi geliştirmek için hangi programlama dillerini bilmek gerekiyor?
WordPress eklentileri geliştirmek için öncelikle PHP bilgisine sahip olmanız gerekmektedir; çünkü WordPress’ün çekirdeği PHP ile yazılmıştır. Aynı zamanda, ön uç arayüzleri ve etkileşimleri oluşturmak için HTML, CSS ve JavaScript (özellikle jQuery – çünkü WordPress yönetim panelinde sıkça kullanılır) konularında da aşina olmanız gerekir. Veritabanı işlemleri için SQL hakkında temel bilgilere sahip olmak da oldukça faydalıdır.

Geliştirme sürecinde karşılaştığım hataları nasıl ayıklayabilirim?

En etkili yöntem, WordPress’in hata ayıklama (debugging) modunu etkinleştirmektir. wp-config.php Dosyada, WP_DEBUG Sabit, olarak ayarlandı. trueAynı zamanda, Query Monitor eklentisinin kurulması ve etkinleştirilmesi önerilir. Bu, veritabanı sorgularını, PHP hatalarını, işlemleri (hook’ları) ve HTTP isteklerini gösterebilen güçlü bir geliştirme aracıdır ve sorunların tespitinde vazgeçilmez bir yardımcıdır.

Eklentim diğer eklentiler veya temalarla nasıl uyumlu olur?

Maksimum uyumluluk sağlamak için WordPress kodlama standartlarına ve en iyi uygulamalarına uymalısınız. Kendi çözümleriniz geliştirmek veya yerel PHP fonksiyonlarını kullanmak yerine, WordPress tarafından sağlanan API’leri ve fonksiyonları kullanın. Fonksiyonlarınızın, sınıflarınızın ve seçenek adlarının önüne benzersiz bir önek ekleyerek ad çakışmalarını önleyin. Mümkün olduğunca, diğer geliştiricilerin eklentinizin davranışlarını değiştirmesine olanak tanıyan filtre kancaları (filter hooks) sağlayın; bu sayede esneklik artar.

Geliştirdiğim eklenti satılabilir mi? Hangi satış kanalları mevcuttur?

Evet, geliştirdiğiniz WordPress eklentisini satmak tamamen mümkündür. Yaygın satış kanalları arasında kendi marka web sitenizi kurarak doğrudan satış yapmak, eklentiyi Envato Market (CodeCanyon) gibi üçüncü parti pazarlara sunmak veya özel WordPress ürün distribütörleriyle işbirliği yapmak yer alır. Hangi kanalı seçerseniz seçin, yüksek kaliteli kod, kapsamlı dokümantasyon ve zamanında teknik destek sağlamanız çok önemlidir.