Sıfırdan Bir: WordPress Eklenti Geliştirmenin Temel Becerilerini Adım Adım Öğrenin

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

WordPress eklenti geliştirme dünyasına hoş geldiniz. Dünyanın en popüler içerik yönetim sistemi olan WordPress’in en güçlü yanı, son derece yüksek genişletilebilirliğidir ve eklentiler, bu genişletilebilirliğin gerçekleştirilmesindeki temel unsurlardır. İster belirli bir işlev için bir çözüm oluşturmak isteyin, ister fikirlerinizi başkaları tarafından kullanılabilecek bir ürüne dönüştürmeyi planlayın; eklenti geliştirmeyi öğrenmek son derece değerli bir beceridir. Bu makale, en temel ortam kurulumlarından başlayarak, ilk tam işlevli eklentinizi oluşturmanıza kadar size adım adım rehberlik edecektir.

WordPress eklentilerinin temel yapısı ve çalışma prensipleri

Kod yazmaya başlamadan önce, bir eklentinin yapısını ve WordPress içindeki çalışma mekanizmasını anlamak çok önemlidir. Bir eklenti, esasen bir veya daha fazla PHP dosyasından oluşur ve bu dosyalar, WordPress tarafından sağlanan API (Uygulama Programlama Arayüzü) aracılığıyla çekirdek sisteme iletişim kurar.

Eklentinin temel dosyası

Her eklentinin bir ana dosyası olmalıdır. Bu ana dosya genellikle eklentinin adıyla adlandırılır, örneğin… my-first-plugin.phpBu dosyanın başında belirli bir eklenti başlık yorumu bulunmalıdır; WordPress bu bilgileri okuyarak eklentiyi tanır ve gösterir.

Tavsiye edilen okuma WordPress Eklenti Geliştirme Kılavuzu: Sıfırdan Uzmanlığa ve Pratik Uygulamalara

<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI:  https://example.com/my-first-plugin
 * Description: 这是一个用于演示的简单WordPress插件。
 * Version:     1.0.0
 * Author:      开发者名称
 * License:     GPL v2 or later
 */

Bu yorum, eklentinin arka plan yönetim arayüzündeki adını, açıklamasını, sürümünü ve diğer meta verilerini tanımlar. Bu bilgiler olmadan, WordPress bu eklentiyi tanıyamaz.

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%).

Kancalı Mekanizma: Eklentiler ile Çekirdek Arasındaki Köprü

WordPress’in temel itici gücü, eklentilerin belirli zaman noktalarında kendi kodlarını ekleyerek varsayılan davranışları değiştirmelerine veya genişletmelerine olanak tanıyan “Kancalar” (Hooks) sistemidir. Kancalar esas olarak iki türe ayrılır: Eylemler (Actions) ve Filtreler (Filters).

Eylem kancaları, belirli olaylar gerçekleştiğinde özel kodlarınızı çalıştırmanıza olanak tanır; örneğin bir makale yayınlandığında, bir kullanıcı giriş yaptığında veya bir sayfa yüklendiğinde. Bunu kullanabilirsiniz. add_action() Bir fonksiyon kullanarak kendi fonksiyonunuzu monte edebilirsiniz.

Filtre hook’ları, verileri değiştirmenize olanak tanır. Veriler veritabanına veya tarayıcıya gönderilmeden önce, onları durdurup değiştirebilirsiniz. Bu, belirli mekanizmalar aracılığıyla gerçekleştirilir. add_filter() Bu işlevler fonksiyonlar aracılığıyla gerçekleştirilir. Bu iki tür “hook”u (düğüm/eklem noktası) anlamak ve ustaca kullanabilmek, gelişmiş eklenti (plugin) geliştirmenin temelidir.

Geliştirme Ortamının Kurulması ve İlk Eklentinin Oluşturulması

Kodlamaya başlamadan önce, güvenilir bir yerel geliştirme ortamı şarttır. Bu, çevrimiçi web sitesini etkilemeden testler yapmanıza ve hataları düzeltmenize olanak tanır.

Tavsiye edilen okuma Web Sitesi Kurma Sürecinin Tam Teknik Rehberi: Sıfırdan Hayata Geçişe Kadar Uygulamalar ve Optimizasyon Stratejileri

Yerel geliştirme ortamını yapılandırma

Entegre yerel sunucu çözümlerinin kullanılması önerilir; örneğin Local by Flywheel, XAMPP veya MAMP. Bu araçlar, WordPress için gerekli olan PHP, MySQL ve web sunucu ortamını tek bir tıklamayla kurmanıza olanak tanır. Kurulum tamamlandıktan sonra, eklenti geliştirmek için yepyeni bir WordPress sitesi oluşturun.

Basit bir eklenti oluşturun ve etkinleştirin.

Sizin yerel WordPress sitenizde… wp-content/plugins Dizin içinde, örneğin “new_folder” adında yeni bir klasör oluşturun. my-first-pluginBu klasör içinde, ana dosyayı oluşturun. my-first-plugin.phpVe yukarıda bahsedilen eklentinin başlık bölümündeki yorumlara ekleyin.

Dosyayı kaydettikten sonra, WordPress arayüzüne giriş yapın ve “Eklentiler” menüsüne gidin. “İlk Eklentim” adlı eklentinin eklenti listesinde yer aldığını görmelisiniz. “Etkinle” butonuna tıklayın; böylece ilk eklentiniz artık aktif hale gelir! Şu an herhangi bir işlevi olmasa da, eklentilerin temel yapısını başarıyla oluşturmuş olursunuz.

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

Çekirdek işlevleri ve güvenlik uygulamalarını gerçekleştirme

Bir eklentinin anlamı, sunduğu işlevlerdedir. Şimdi bu eklentiye basit ancak kullanışlı bir özellik ekleyelim: Makale içeriğinin sonuna otomatik olarak özelleştirilmiş bir metin parçası ekleyecek bir özellik.

Makale içeriğini filtreler kullanarak değiştirin.

Biz bunu kullanacağız. the_content Bu filtre kancası… Eklentinizin ana dosyasına aşağıdaki kodu ekleyin:

function myplugin_add_text_to_content( $content ) {
    // 检查是否为单篇文章页面
    if ( is_single() ) {
        $custom_text = '<p><em>Okuduğunuz için teşekkür ederim! Bu metin, ilk eklentim tarafından eklenmiştir.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter( 'the_content', 'myplugin_add_text_to_content' );

Bu kod, bir fonksiyon tanımlamaktadır. myplugin_add_text_to_contentMakalenin içeriğini alır $content Bir parametre olarak. Fonksiyonun içinde kullanılır. is_single() Koşul kontrol etme etiketleri sayesinde metnin yalnızca tek bir makale sayfasına eklendiğinden emin olun. Son olarak, add_filter() Bu fonksiyonu şu yere monte edin: the_content Filtre üzerinde. Dosyayı kaydedin ve bir blog makalesi sayfasını yenileyin; eklenen metni görebileceksiniz.

Tavsiye edilen okuma Sıfırdan başlayarak profesyonel bir WooCommerce bağımsız web sitesi oluşturmayı adım adım öğreteceğim.

Eklentilerin güvenliğine ilişkin temel değerlendirme kriterleri

Güvenlik, eklenti geliştirmede en önemli husustur. Kullanıcı girdilerine veya web sitesi verilerine asla körü körüne güvenmeyin.
1. 转义输出:当将任何数据输出到浏览器时,必须进行转义,以防止跨站脚本(XSS)攻击。WordPress 提供了如 esc_html(), esc_attr(), esc_url() Ve diğer yardımcı fonksiyonlar.
2. 验证和清理输入:对于从用户表单或 URL 参数接收的数据,在使用前必须进行验证(检查格式是否正确)和清理(移除非法字符)。可以使用函数如 sanitize_text_field()
3. 非现安全:如果你的插件涉及数据修改(如保存设置),必须使用 WordPress 的非现(Nonce)机制来验证请求的意图,防止跨站请求伪造(CSRF)攻击。

Eklentiye bir yönetim arayüzü ekleyin.

Çoğu eklentinin, kullanıcıların ayarlarını yapabileceği bir sayfaya ihtiyacı vardır. Makalenin sonuna eklenmesi istenen metni kullanıcıların özelleştirebileceği basit bir seçenek sayfası oluşturacağız.

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.

Yönetim menüsü ve sayfaları oluşturun.

Kullanabiliriz. add_menu_page()add_options_page() Bu fonksiyon, WordPress arka planına bir menü öğesi ekler. Aşağıdaki kod, “Ayarlar” alt menüsü içinde bulunan bir seçenek sayfası ekler:

function myplugin_add_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的插件',              // 菜单标题
        'manage_options',        // 所需权限
        'myplugin-settings',     // 菜单Slug
        'myplugin_render_settings_page' // 用于渲染页面的回调函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

Daha sonra, bir geri çağırma (callback) fonksiyonu tanımlamamız gerekiyor. myplugin_render_settings_page Aşağıda, bir ayar sayfasının HTML içeriğini oluşturmak ve formun kaydetme işlemlerini gerçekleştirmek için gerekli kodlar yer almaktadır. Sayfada, seçeneklerin güvenli bir şekilde işlenmesi için WordPress’in Settings API’si kullanılmalıdır; ancak bir giriş seviyesi örneği olarak, daha basit bir versiyon sunulmaktadır:

function myplugin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h2>Eklenti ayarlarım.</h2>
        <form action="/tr/options.php/" method="post" data-trp-original-action="options.php">
            <?php settings_fields( 'myplugin_settings_group' ); ?>
            <label for="custom_text">Özelleştirilmiş metin:</label><br/>
            <textarea id="custom_text" name="myplugin_custom_text" rows="4" cols="50"><?php echo esc_textarea( get_option( 'myplugin_custom_text' ) ); ?></textarea>
            <p class="submit">
                <input type="submit" name="submit" class="button-primary" value="Değişiklikleri kaydet." />
            </p>
        <input type="hidden" name="trp-form-language" value="tr"/></form>
    </div>
    &lt;?php
}

Kayıt ayarlarını yapın ve verileri işleyin.

Bir ayar seçeneği kaydetmemiz ve bunun güvenli bir şekilde saklanmasını sağlamamız gerekiyor. Bu işlem genellikle eklentinin başlatılması sırasında yapılır:

function myplugin_register_settings() {
    register_setting(
        'myplugin_settings_group', // 设置分组
        'myplugin_custom_text',    // 选项名称
        'sanitize_textarea_field'  // 清理回调函数
    );
}
add_action( 'admin_init', 'myplugin_register_settings' );

Son olarak, daha önce eklenen makale içeriğini değiştiren fonksiyonu, veritabanı seçeneklerinden düzeltin. myplugin_custom_text Kullanıcının kaydettiği metni okur; sabit olarak kodlanmış metni kullanmaz.

Özetle.

Bu makale, WordPress eklenti geliştirmeyi “sıfırdan bir”e kadar öğrenmenizi sağladı. Eklentilerin temel yapısını ve WordPress’in çekirdek mekanizmalarını anlamakla başladık, yerel geliştirme ortamını adım adım kurduk, ilk eklentimizi oluşturup etkinleştirdik. Daha sonra, bir makaleye metin eklemek için filtrelerin nasıl kullanılacağını örneklerle öğrendik ve güvenlik uygulamalarının önemini vurguladık. Son olarak, eklentimize yapılandırılabilir bir yönetim ayarları sayfası ekledik.

Bu temel becerileri öğrendikten sonra, daha derin seviyedeki eklenti geliştirmeye devam etmek için gerekli temellere sahipsiniz. Bundan sonra, özel makale türleri, meta veriler (Meta Box), kısa kodlar (Shortcode), REST API uç noktaları ve Ajax çağrıları gibi ileri düzey konuları inceleyerek daha karmaşık ve güçlü WordPress eklentileri oluşturabilirsiniz.

Sıkça Sorulan Sorular.

Bir eklenti geliştirmek için hangi ön koşul bilgilerine ihtiyaç vardır?

PHP programlama diline dair temel bilgilere sahip olmanız gerekmektedir; çünkü WordPress çekirdeği ve eklentileri PHP ile yazılmıştır. Ayrıca, HTML, CSS ve temel JavaScript bilgilerine sahip olmanız da oldukça faydalı olacaktır, özellikle kullanıcı arayüzleri oluşturmanız gerektiğinde. MySQL veritabanının temel kavramlarına aşina olmanız da bir avantajdır.

Eklenti kodumu nasıl hata ayıklarım?

WordPress geliştirme sürecinde en sık kullanılan hata ayıklama yöntemi, gerekli ayarların etkinleştirilmesidir. WP_DEBUGSitenin ilgili bölümünde bunu yapabilirsiniz. wp-config.php Dosyada, define(‘WP_DEBUG’, true); Bu satırın değerini şu şekilde değiştirin: trueBu, tüm PHP hatalarını, uyarılarını ve bildirimlerini ekranda gösterecek ve aynı zamanda bunları bir günlük dosyasına (log file) kaydedecektir. Ayrıca, error_log() Fonksiyonun değişken bilgilerini sunucunun hata günlüğüne yazması da oldukça pratik bir hata ayıklama tekniğidir.

Eklentim çok dilli destek nasıl sağlamalı?

Eklentinizi uluslararası hale getirmek için, WordPress’in çeviri fonksiyonlarını kullanmanız gerekmektedir (örneğin: __()_e()Tüm kullanıcıya yönelik metinleri belirli bir yapı içinde (örneğin, bir şablon kullanarak) sarın. Daha sonra, Poedit gibi bir araç kullanarak bu yapıya göre metinleri oluşturun. .pot Şablon dosyaları; çevirmenler, bu dosyalara dayanarak farklı dillerde içerikler oluşturabilirler. .po.mo Dosya. Son olarak, eklentinin ana dosyasında bunu kullanın. load_plugin_textdomain() Bir fonksiyon, çeviri dosyalarını yüklemek için kullanılır.

Geliştirme işlemi tamamlandıktan sonra, eklentiyi resmi kataloga nasıl gönderebilirim?

Öncelikle, eklentinizin WordPress’in resmi kodlama standartlarına ve GPL lisansına tam olarak uyduğundan emin olun. Daha sonra, WordPress.org’da bir eklenti dizini için bir SVN deposu talep edin. Eklentinizin kodunu bu depoya göndermek için SVN araçlarını kullanmanız gerekecektir. /trunk İçindekiler. Aynı zamanda, yüksek kaliteli içerikler hazırlayın. readme.txt Dosyalar, eklentilerin ekran görüntüleri ve simgeleri. Gönderimden sonra, resmi inceleme ekibi eklentinizi inceleyecek ve onaylandıktan sonra resmi katalogda herkese açık olarak yayınlanabilir.