Sıfırdan Başlayın: WordPress Eklenti Geliştirme Kapsamlı Rehberi ve Uygulama Eğitimi

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

Hazırlık İşlemleri ve Ortam Kurulumu

Kod yazmaya başlamadan önce, stabil ve verimli bir geliştirme ortamı çok önemlidir. Bu, sadece eklentinizin gelecekteki geliştirmelerde yapısal olarak net kalmasını sağlamakla kalmaz, aynı zamanda modern araçları kullanarak verimliliğinizi de artırmanıza olanak tanır.

Yerel Geliştirme Ortamı Ayarları

Yerel sunucu ortamlarını kullanmanızı öneririz; örneğin Local by Flywheel, XAMPP veya MAMP. Bu araçlar, bilgisayarınızda Apache/Nginx, MySQL ve PHP içeren bir WordPress çalışma ortamı hızlı bir şekilde kurmanıza olanak tanır. Lütfen PHP sürümünüzün hedef sunucunuzun sürümüyle uyumlu olduğundan emin olun ve hata raporlama özelliğini etkinleştirin; bu, geliştirme sürecinin başlarında sorunları hızlı bir şekilde tespit etmenize yardımcı olacaktır.

Kod Düzenleyicileri ve Araç Seçimi

Güçlü bir kod editörü seçmek ilk adımdır; örneğin Visual Studio Code, PhpStorm veya Sublime Text gibi. Bu editörler genellikle sözdizimi vurgulama, kod önerileri ve sürüm kontrolü entegrasyonu sunar. Ayrıca, bir kod düzenleme aracı (örneğin PHP_CodeSniffer) ve hata ayıklama aracı (örneğin Xdebug) kurmak, geliştirme deneyiminizi ve kod kalitenizi büyük ölçüde artıracaktır.

Tavsiye edilen okuma WordPress Tema Geliştirme Kılavuzu: Sıfırdan Başlayarak Profesyonel Web Siteleri Oluşturma

İlk eklentinizi oluşturun.

Şimdi, en basit eklentiyi oluşturarak WordPress eklentilerinin temel yapısını ve etkinleştirme mekanizmasını öğrenmeye başlayalım.

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

Eklenti ana dosyası ve temel başlık bilgileri

Her WordPress eklentisinin bir ana PHP dosyası olmalıdır ve bu dosya, WordPress’in eklentiyi tanıyabilmesi için standart eklenti başlık bilgilerini içermelidir. Biz de adı “…” olan bir eklenti oluşturduk. my-first-plugin.php Dosya.

Kodu bu dosyaya koyun ve ardından WordPress’in kurulum dizini altına yükleyin. /wp-content/plugins/my-first-plugin/ Klasörün içinde.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习的简单 WordPress 插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Kaydettikten sonra, bu eklentiyi WordPress arayüzündeki “Eklentiler” sayfasında görebilir ve “Etkinle” butonuna tıklayarak onu aktive edebilirsiniz. Şu an için herhangi bir özelliği yok, ancak WordPress tarafından onaylanmış bir eklentiyi başarıyla oluşturdunuz.

Eklentiye bir ayar sayfası ekleyin.

Yaygın bir ihtiyaç, bir eklentiye arka plan yönetim sayfası eklemektir. Bunu WordPress tarafından sağlanan özellikler aracılığıyla yapabiliriz. add_menu_page()add_options_page() Bu işlevi gerçekleştirmek için bir fonksiyon kullanılır.

Tavsiye edilen okuma WordPress eklenti geliştirme rehberi: Profesyonel uzantıları sıfırdan bire kadar oluşturma

Ana dosyada kodlamaya devam ediyoruz ve basit bir ayar sayfası oluşturuyoruz.

// 钩子:在管理员菜单中添加一个新的页面
add_action('admin_menu', 'mfp_add_admin_menu');

function mfp_add_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 所需权限
        'my-first-plugin',      // 菜单slug
        'mfp_settings_page_html' // 用于显示页面内容的回调函数
    );
}

// 设置页面的HTML内容
function mfp_settings_page_html() {
    // 检查用户权限
    if (!current_user_can('manage_options')) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <p>İlk eklentimin ayar sayfasına hoş geldiniz!</p>
        <form action="/tr/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段(后续可在此添加)
            settings_fields('mfp_options_group');
            do_settings_sections('my-first-plugin');
            submit_button('保存设置');
            ?>
        <input type="hidden" name="trp-form-language" value="tr"/></form>
    </div>
    &lt;?php
}

Bu kod şu amaçla kullanılır: add_action() Hook, bir fonksiyonu çağırır. mfp_add_admin_menu WordPress’e monte edilen admin_menu Eylem açısından: Yönetici menüsü oluşturulduğunda, fonksiyonumuz çağrılır ve bu sayede “Ayarlar” ana menüsüne yeni bir alt menü öğesi eklenir. Bu alt menü öğesine tıklandığında, ilgili işlem gerçekleştirilir. mfp_settings_page_html Bu fonksiyon, sayfa içeriğini renderlemek için kullanılır.

WordPress kancalarını ve filtrelerini anlamak.

WordPress’in temel felsefesi “Kancalar” (Hooks)’dır; bu sayede belirli zaman noktalarında veya konumlarda özel kodlar ekleyebilir ve böylece WordPress’in temel işlevlerini doğrudan temel dosyaları değiştirmeden değiştirebilir veya genişletebilirsiniz. Kancalar esas olarak iki türe ayrılır: Eylemler (Actions) ve Filtreler (Filters).

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

Action Hook’ların Kullanımı

Eylem kancaları, belirli bir olay meydana geldiğinde kodunuzu çalıştırır; örneğin bir makale yayınlamak, yönetim arayüzünü yüklemek veya sayfa alt bilgilerini (footer) göstermek gibi. Geri dönüş değeri beklemeyen bu yapılar, esas olarak belirli bir görevin yerine getirilmesi için kullanılır. add_action() Bu fonksiyon, belirtilen eylem kancasına bir geri çağırma (callback) fonksiyonu bağlamak için kullanılır.

Örneğin, her makalenin sonuna otomatik olarak bir telif hakkı bildirimi eklemek istiyoruz. Bunu yapmak için şu yöntemleri kullanabiliriz: the_content Bu filtre (aynı zamanda bir eylem noktası olarak da işlev görür) bunu gerçekleştirir. Ancak eylemi daha saf bir şekilde göstermek için… wp_footer Kancalar, web sitesinin ön yüz sayfasının alt kısmında (footer) bilgiyi görüntüler.

add_action('wp_footer', 'mfp_add_footer_note');

function mfp_add_footer_note() {
    if (is_single()) { // 仅在文章页面显示
        echo '<p style="text-align:center; color:#666;">Bu makale, eklentim aracılığıyla sizin için sunulmuştur.</p>';
    }
}

Filtre kancalarının kullanımı

Filtre hook’ları, veriler kullanılmadan veya veritabanına kaydedilmeden önce onları değiştirmek için kullanılır. Bir değer almanız ve bu değeri değiştirip geri göndermeniz beklenir. Biz bunu kullanıyoruz. add_filter() Bir fonksiyon, geri çağırma (callback) fonksiyonunu monte etmek için kullanılır.

Tavsiye edilen okuma WordPress eklenti geliştirmeye başlama kılavuzu: Sıfırdan başlayarak özel işlevsellik modüllerinizi oluşturun.

Klasik bir örnek, makale özetlerinin uzunluğunun değiştirilmesidir. WordPress’in varsayılan özet uzunluğu 55 kelimedir ve bunu değiştirebiliriz. excerpt_length Filtreler, bunu değiştirmek için kullanılır.

add_filter('excerpt_length', 'mfp_custom_excerpt_length');

function mfp_custom_excerpt_length($length) {
    // 将摘要长度修改为 20 个单词
    return 20;
}

Bu örnekte, fonksiyon… mfp_custom_excerpt_length Varsayılan uzunluk değeri alındı. $lengthArdından, özelleştirdiğimiz yeni uzunluk değeri olan 20’yi geri döndürürüz. WordPress, bu geri dönüş değerini özet oluşturmak için kullanacaktır.

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.

Eklentilerin Güvenliği ve En İyi Uygulamalar

Popüler bir eklenti geliştirmek istiyorsanız, güvenlik, sürdürülebilirlik ve performans mutlaka göz önünde bulundurulması gereken unsurlardır. En iyi uygulamalara uyarak birçok yaygın sorundan kaçınabilirsiniz.

Veri Doğrulama, Kaçınma ve Temizleme

Kullanıcı tarafından girilen verilere veya veritabanından alınan verilere asla güvenmeyin. Herhangi bir veriyle işlem yapmadan önce, verilerin doğrulanması, temizlenmesi ve uygun şekilde işlenmesi (örneğin: escape işlemleri yapılması) gerekmektedir.
* 验证(Validation):检查数据是否符合预期的格式或类型(如是否是邮箱、数字等)。可以使用 filter_var() Function veya WordPress’in sanitize_*() Seri fonksiyonlar.
* 清理(Sanitization):清除数据中的非法或危险字符,使其变得安全。对于表单输入,常用 sanitize_text_field()
* 转义(Escaping):在将数据输出到 HTML、JavaScript 或 URL 时,根据上下文进行转义,以防止跨站脚本(XSS)攻击。WordPress 提供了丰富的转义函数,如 esc_html()esc_attr()esc_url()wp_kses_post()

Örneğin, veritabanından gelen bir değişkeni güvenli bir şekilde çıkarmak:

// 假设 $user_input 是从数据库或表单获取的数据
echo '<div class="info">'`. esc_html($user_input)`.'</div>';
// 或者,如果允许一些安全的HTML标签
echo '<div class="info">'`. wp_kses_post($user_input)`.'</div>';

Eklentilerin uluslararasılaştırılması ve yerelleştirilmesi

Eklentinizin dünya genelindeki kullanıcılar tarafından kullanılabilmesi için çeviri desteği eklemeniz gerekiyor; bu sürece uluslararasılaştırma (i18n – Internationalization) denir. WordPress, bu işlemi gerçekleştirmek için GNU gettext çerçevesini kullanır.

Öncelikle, çevrilmeleri gereken tüm metin parçalarını belirli bir fonksiyon kullanarak sarın. En yaygın kullanılan yöntem budur. __()(Yanıt değeri için kullanılır) ve _e()(Direkt çıktıyı yansıtmak için kullanılır.)

Daha önce oluşturduğumuz yönetim sayfasının başlığını değiştirelim:

function mfp_settings_page_html() {
    if (!current_user_can('manage_options')) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <p><?php _e('欢迎来到我的第一个插件的设置页面!', 'my-first-plugin'); ?></p>
        ...
    </div>
    &lt;?php
}

Lütfen dikkat: Her çeviri fonksiyonu, bir metin alanı parametresi içermektedir (‘my-first-plugin’); bu parametre, eklentinin başlık bilgilerinde tanımlanan değerle eşleşmelidir. Text Domain Tamamen aynı. Daha sonra, Poedit gibi bir araç kullanarak eklenti kodundaki çevrilebilir metinleri taramabilir ve çeviri için gerekli verileri oluşturabilirsiniz. .pot Şablon dosyalarını oluşturun ve farklı diller için gerekli içerikleri hazırlayın. .po.mo Dosyayı çevirin ve onu eklenti dizininin içine koyun. /languages/ Klasörün içinde.

Özetle.

Bu kılavuz aracılığıyla, WordPress eklenti geliştirmenin temel adımlarını sistematik bir şekilde inceledik. Yerel bir ortam oluşturmaktan, standart başlık bilgilerini içeren bir ana dosya oluşturmaya; eylemler ve filtreler aracılığıyla WordPress’in çekirdeğiyle derinlemesine etkileşime geçmeye; ve son olarak da çok önemli olan güvenlik uygulamaları ile uluslararasılaştırma hazırlıklarına kadar, işlevsel, güvenli ve güvenilir bir eklenti oluşturmak için gereken temel bilgileri öğrendiniz. Unutmayın ki, mükemmel eklentiler net bir kod yapısına, sıkı güvenlik önlemlerine ve özenli bir kullanıcı deneyimine dayanır. Bundan sonra en iyi öğrenme yöntemi pratik yapmaktır; gerçek bir sorunu çözen bir eklentiyle başlayarak, daha karmaşık API’ler ve özellikler keşfetmeye devam edin.

Sıkça Sorulan Sorular.

WordPress eklentisi geliştirmek için hangi temel bilgilere ihtiyaç vardır?

PHP programlama dilini öğrenmeniz gerekiyor; çünkü bu, WordPress’in temel geliştirme dilidir. Ayrıca, ön uç görünümünü ve etkileşimini yönetmek için HTML, CSS ve JavaScript konularında temel bilgilere sahip olmanız önemlidir. WordPress’in verileri saklamak için kullandığı MySQL veritabanının temel kavramlarına (örneğin CRUD işlemleri) aşina olmanız da faydalı olacaktır. Son olarak, WordPress’in temel yapısını ve çalışma sürecini anlamanız kritik öneme sahiptir.

WordPress eklentimizi nasıl hata ayıklarız?

Öncelikle, wp-config.php dosyasında WordPress hata ayıklama modunu etkinleştirin. define('WP_DEBUG', true);define('WP_DEBUG_LOG', true); Bu ayarı “true” olarak belirleyin. Böylece hata mesajları /wp-content/debug.log dosyasına kaydedilir ve ziyaretçilere doğrudan gösterilmez. Ayrıca, Xdebug gibi profesyonel hata ayıklama araçlarını koda yazdığınız editörle (örneğin VS Code) entegre ederek kesme noktaları belirleme, adım adım hata ayıklama gibi gelişmiş özelliklerden yararlanabilirsiniz. Bunun yanı sıra, tarayıcının geliştirici araçlarındaki ağ ve kontrol panelini kullanarak AJAX isteklerini ve ön uç JavaScript hatalarını inceleyebilirsiniz.

Geliştirdiğim eklentiyi WordPress resmi eklenti dizinine nasıl gönderebilirim?

Göndermeden önce, eklentinizin tamamen WordPress’in resmi kodlama standartlarına ve en iyi uygulamalarına uyduğundan emin olun ve kodunuzu kapsamlı bir şekilde inceleyip güvenlik kontrollerinden geçirin. Bir WordPress.org hesabı oluşturmanız gerekmektedir; ardından eklentinizin sıkıştırılmış paketini eklenti gönderim sayfasından yükleyin. İnceleme ekibi, kodunuzun güvenliğini, yasallığını ve ilgili kılavuzlara uygunluğunu kontrol edecektir. İnceleme başarılı olduktan sonra, eklentiniz resmi kataloga eklenerek dünya genelindeki kullanıcılar tarafından indirilip kurulabilir hale gelecektir.

WordPress eklentileri için bir ayar seçeneği nasıl WordPress Özelleştirici’ye eklenir?

WordPress’ın Özelleştirici (Customizer) aracı, yapılandırmaların gerçek zamanlı olarak önizlenmesini sağlar. Bunu kullanarak… add_action('customize_register', 'your_function'); Kancalar… Geri çağırma fonksiyonlarında kullanılır. your_function Orada, yoluyla… $wp_customize Bir nesneye bir bölüm (Section), bir ayar (Setting) ve bir kontrolör (Control) eklenmiştir. Bu, kullanıcıların özelleştirici arayüzünde seçenekleri ayarlamalarına ve ön uçtaki etkileri gerçek zamanlı olarak görmelerine olanak tanır; temaların ve eklentilerin görünüm ayarlarını yönetmek için çok uygundur.