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

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

Neden kendi WordPress eklentilerinizi geliştirmeniz gerekiyor?

WordPress’in temel tasarım felsefelerinden biri, son derece yüksek genişletilebilirliğidir ve eklentiler (plugins), bu özelliğin gerçekleştirilmesindeki ana araçlardır. Resmi eklenti kütüphanesi çok sayıda seçenek sunsa da, kendi eklentilerinizi geliştirmek benzersiz avantajlar sağlar. Mevcut eklentiler iş mantığınızı tam olarak karşılamıyorsa, performans sorunları varsa veya gereksiz özelliklerle aşırı yüklenmişse, özel olarak geliştirme en iyi çözümdür. Bu sayede projenizin ihtiyaçlarına tam olarak uygun, kodu sade ve bakımı kolay bir çözüm oluşturabilirsiniz.

Eklenti geliştirme sayesinde özel özellikleri temadan ayırabilirsiniz. Bu, son derece önemli bir iyi uygulamadır; çünkü web sitesi teması değiştirilse bile temel işlevlerin korunmasını sağlar. Ayrıca, iyi kapsüllenmiş eklentiler farklı projeler arasında kolayca yeniden kullanılabilir ve bu da geliştirme verimliliğini büyük ölçüde artırır. WordPress’in çalışma prensiplerini derinlemesine anlamak, PHP programlama becerilerinizi geliştirmek veya ticari eklentiler yayınlamayı planlayan geliştiriciler için eklenti geliştirmeyi öğrenmek zorunludur.

İlk eklentinizin temel yapısını oluşturun.

Bir WordPress eklentisi oluşturmak için, doğru yerde basit bir katalog ve ana dosya oluşturmaktan başlayın. Bu, tüm eklenti geliştirmelerinin başlangıç noktasıdır.

Tavsiye edilen okuma Başlangıçtan uygulamaya: WordPress eklenti geliştirme kapsamlı rehberi ve ileri düzey teknikleri

Bir eklenti ana dosyası oluşturun.

Tüm eklentilerin, WordPress sisteminize eklentinizi bildirmek için belirli eklenti başlık yorumlarını içeren bir ana PHP dosyasına sahip olması gerekir. Bu dosya genellikle eklentinin adıyla adlandırılır. Örneğin, “my-plugin.php” adında bir dosya oluşturabiliriz. my-first-plugin.php Dosya.

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://www.yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习WordPress插件开发的入门示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Bu yorum, WordPress’in eklentileri tanımasında kritik bir rol oynar. “Plugin Name” (Eklenti Adı) zorunlu bir bilgidir; diğer bilgiler ise isteğe bağlıdır. Bu dosyayı oluşturduktan sonra, onu belirtilen yere koyun. /wp-content/plugins/my-first-plugin/ Dizin içerisindeki eklentiyi, WordPress arayüzünün “Eklentiler” sayfasında görebilir ve oradan etkinleştirebilirsiniz.

Eklentilerin güvenliğini ve en iyi uygulamaları anlamak

Herhangi bir işlevsel kod yazmadan önce, güvenlik önlemleri alınmalıdır. WordPress, birçok genel değişken ve fonksiyon sunar; çekirdek dosyalara doğrudan erişim tehlikelidir ve izin verilmez. Bu nedenle, tüm eklenti PHP dosyalarının en başına, doğrudan erişimi engelleyen kodlar eklenmelidir.

Ana dosyanızdaki eklenti başlık yorumlarının hemen ardından aşağıdaki kodu ekleyin:

// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
    exit; // 如果ABSPATH未定义,则退出
}

Constant ABSPATH Bu, WordPress’in kök dizininin mutlak yoludur ve WordPress ortamı başlatıldığında tanımlanır. Bu sabitin var olup olmadığını kontrol ederek, başkalarının doğrudan URL aracılığıyla eklenti dosyalarınıza erişmesini engelleyebilir ve böylece potansiyel güvenlik risklerini önleyebilirsiniz. Bu, eklenti geliştirme sürecindeki ilk ve en önemli güvenlik uygulamasıdır.

Tavsiye edilen okuma WordPress Eklenti Geliştirme Başlangıç Kılavuzu

WordPress özelliklerini hook’lar kullanarak genişletmek

WordPress’in eklenti mimarisinin temeli, “Kancalar” (Hooks) sistemidir. Bu sistem, WordPress’in çekirdek dosyalarını değiştirmeden, belirli zaman noktalarında özel kodlar ekleyerek çekirdek işlevleri değiştirmenize veya geliştirmenize olanak tanır. Kancalar esas olarak iki türe ayrılır: Eylemler (Actions) ve Filtreler (Filters).

Bir görevi gerçekleştirmek için eylem kancalarını (action hooks) kullanın.

Eylem kancaları, belirli olaylar gerçekleştiğinde özel fonksiyonlarınızı çalıştırmanıza olanak tanır. Örneğin, bir makale yayınlandığında, bir kullanıcı giriş yaptığında veya bir web sayfasının üst kısmı yüklendiğinde. Bir eylem kancası kullanmak için… add_action() İşlev.

Diyelim ki, web sitemizin yönetim arayüzünün üst kısmına özel bir hoş geldin mesajı eklemek istiyoruz. Bunu oraya ekleyebiliriz. admin_notices Bu hareket, o kancaya bağlı.

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
function my_custom_admin_notice() {
    echo '<div class="notice notice-success is-dismissible"><p>Web sitesi yönetim arayüzüne hoş geldiniz! Bu, benim eklentim tarafından eklenen bir bildirimdir.</p></div>';
}
add_action( 'admin_notices', 'my_custom_admin_notice' );

Bu kodu ana eklenti dosyanıza ekleyin. Eklentiyi aktive ettikten sonra, yönetim paneline her girdiğinizde bu uyarı mesajını göreceksiniz. Fonksiyon… my_custom_admin_notice Bu, bizim tanımladığımız bir geri çağırma (callback) fonksiyonudur.add_action() Bunu… ile birleştirin. admin_notices Kancalar birbirine bağlandı.

Verileri filtre kancaları kullanarak değiştirme

Filtre hook’ları, verilerin kaydedilmesi, görüntülenmesi veya kullanılmasından önce üzerinde değişiklik yapmak için kullanılır. Bu hook’lar verileri alır, sizin fonksiyonunuz tarafından işlenir ve ardından değiştirilmiş verilerin geri dönmesi gerekir. add_filter() Bu, bir fonksiyon tarafından gerçekleştirilmiştir.

Klasik bir örnek, makale başlıklarının sonundaki metni değiştirmektir. Örneğin, tüm makale başlıklarının ardına web sitesi adını eklemek isteyebiliriz.

Tavsiye edilen okuma Sıfırdan başlamak: WordPress eklenti geliştirme tam rehberi ve en iyi uygulamaların paylaşılması.

function modify_post_title( $title ) {
    // 确保只在主循环的单篇文章页面修改
    if ( is_single() && in_the_loop() ) {
        $title .= ' | 我的网站';
    }
    return $title;
}
add_filter( 'the_title', 'modify_post_title' );

Burada,modify_post_title Fonksiyon, orijinal başlık metnini bir parametre olarak alır, bunun üzerine web sitesi adını ekler ve ardından bu metni geri döndürür. WordPress, bu değiştirilmiş değeri görüntülemek için kullanır. Eylemler ile filtreler arasındaki farkı anlamak (biri bir görevi yerine getirir, diğeri verileri değiştirip geri döndürür), eklentilerin (hook’ların) etkili bir şekilde kullanılmasının anahtarıdır.

Eklenti için bir yönetim sayfası oluşturun.

Birçok eklentinin yönetici ile etkileşime girmesi gerekmektedir; bu da özel yönetim menüleri ve ayar sayfalarının eklenmesini gerektirir. WordPress, arka plan menüsünü kolayca genişletmek için bir dizi fonksiyon sunar.

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.

Üst düzey yönetim menüsü ekleyin.

Kullanın. add_menu_page() Bu fonksiyon, eklentinizin yönetim kenar çubuğuna bir üst düzey menü öğesi ekleyebilir. Bu genellikle eklentinin yapılandırılmasına başlanan noktadır.

Hadi, “Benim Eklenti Ayarlarım” adında basit bir sayfa oluşturalım.

function my_plugin_add_menu_page() {
    add_menu_page(
        '我的插件设置',          // 页面标题(浏览器标签)
        '我的插件',              // 菜单标题
        'manage_options',       // 所需权限
        'my-plugin-settings',   // 菜单slug(URL标识)
        'my_plugin_settings_page', // 用于渲染页面内容的回调函数
        'dashicons-admin-generic', // 图标(使用Dashicons)
        30                      // 菜单位置
    );
}
add_action( 'admin_menu', 'my_plugin_add_menu_page' );

Daha sonra, yukarıda kullanılan geri çağırma (callback) fonksiyonlarını tanımlamanız gerekiyor. my_plugin_settings_page Sayfa HTML içeriğini çıktı olarak alın.

function my_plugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Eklenti ayarlarım.</h1>
        <form method="post" action="/tr/options.php/" data-trp-original-action="options.php">
            <?php
            // 输出设置字段(后续可与设置API结合)
            settings_fields( 'my_plugin_options_group' );
            do_settings_sections( 'my-plugin-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="tr"/></form>
    </div>
    &lt;?php
}

WordPress Ayarları API’sini Entegre Etme

Form gönderimlerini ve doğrulamalarını manuel olarak işlemek hem zaman alıcı hem de hatalara açıktır. WordPress’in Ayarlar API’si (Settings API), Nonce doğrulaması, yetki kontrolü ve veri kaydı gibi işlemleri otomatik hale getirir.

Öncelikle, ayarları kaydetmeniz, ayar blokları ve alanları eklemeniz gerekiyor.

function my_plugin_settings_init() {
    // 注册一组设置
    register_setting( 'my_plugin_options_group', 'my_plugin_option_name' );

// 添加一个设置区块
    add_settings_section(
        'my_plugin_section_id',
        '主要设置',
        null, // 可选的区块描述回调函数
        'my-plugin-settings'
    );

// 向区块中添加一个字段
    add_settings_field(
        'my_plugin_field_id',
        '示例文本字段',
        'my_plugin_field_callback',
        'my-plugin-settings',
        'my_plugin_section_id'
    );
}
add_action( 'admin_init', 'my_plugin_settings_init' );

// 字段的回调函数,用于输出HTML输入框
function my_plugin_field_callback() {
    $option = get_option( 'my_plugin_option_name' );
    echo '<input type="text" name="my_plugin_option_name" value="' . esc_attr( $option ) . '" />';
}

Şimdi, ayarlar sayfanızda, ayarlar API’si tarafından korunan bir form alanı bulunmaktadır ve bu alanın değeri WordPress’e güvenli bir şekilde kaydedilecektir. options Veritabanı tablosunda. Yoluyla. get_option( 'my_plugin_option_name' ) Bu değeri, ön tarafta (frontend) veya arka tarafta (backend) herhangi bir yerden elde edebilirsiniz.

Özetle.

WordPress eklenti geliştirme, yaratıcılığı güçlü özelliklere dönüştürme sürecidir. Öncelikle, neden özel eklentilere ihtiyaç duyulduğunu anlamakla başlıyoruz; ardından eklentinin temel yapısını adım adım oluşturuyor ve güvenli kod yazmanın önemini vurguluyoruz. Asıl mesele, WordPress’in hook (eklemeler) sistemini iyi kavramak ve eylemler (actions) ile filtreler (filters) aracılığıyla çekirdek sistemle sorunsuz bir şekilde etkileşim kurmaktır. Son olarak, profesyonel bir yönetim arayüzü oluşturmanın yollarını araştırıyor ve Settings API’sini kullanarak kullanıcı ayarlarını güvenli bir şekilde işliyoruz. Bu adımları ve en iyi uygulamaları takip ederek, yapısal olarak sağlam, güvenli, güvenilir ve kolayca bakımı yapılabilecek eklentiler geliştirebilirsiniz; böylece WordPress’in sınırsız potansiyelini gerçekten ortaya çıkarabilirsiniz.

Sıkça Sorulan Sorular.

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

WordPress eklentileri geliştirmek için temel olarak PHP programlama dili bilgisine ihtiyaç vardır; çünkü eklenti kodları çoğunlukla PHP ile yazılır. Aynı zamanda, ön uç gösterimlerin ve etkileşimli arayüzlerin oluşturulması için HTML, CSS ve JavaScript konularında temel bilgilere sahip olmak gerekir. WordPress’in temel kavramlarını (makaleler, sayfalar, kullanıcı rolleri ve temel veri döngüleri gibi) anlamak da oldukça faydalıdır.

Eklentilerin ve temaların fonksiyonları nereye konmalıdır?

Bu, kritik bir en iyi uygulama sorunudur. Web sitesinin işlevleri, arka uç mantığı ve veri işlemleriyle ilgili tüm kodlar eklentilerde bulunmalıdır. Web sitesinin görsel sunumu, düzeni ve stil ile (sayfa şablonları, CSS, ön uç JavaScript gibi) yakından ilgili kodlar ise temalarda yer almalıdır. Bunu yapmanın en büyük avantajı, web sitesi teması değiştirildiğinde temel işlevlerin kaybolmamasını sağlamaktır. Örneğin, özel bir makale türünün kaydıyla ilgili kodlar eklentide yazılmalı, ancak bu makale türünü gösteren şablon dosyaları temada bulunabilir.

Geliştirilmekte olan bir eklentiyi nasıl hata ayıklarım?

WordPress’ın hata ayıklama (debugging) modunu etkinleştirmek ilk adımdır. wp-config.php Dosyada, WP_DEBUG Sabit, olarak ayarlandı. trueBu, PHP hatalarını, uyarılarını ve bildirimlerini doğrudan sayfada gösterecektir. Aynı zamanda, bunları kullanmak da mümkündür. error_log() Fonksiyon, özelleştirilmiş hata ayıklama bilgilerini sunucunun hata günlüğüne yazar. Daha karmaşık hata ayıklamaları için, Xdebug gibi özel PHP hata ayıklama araçlarını kullanmayı veya veritabanı sorgularını, eklentilerin çalışmasını ve performans verilerini görmek amacıyla Query Monitor gibi sorgu izleme eklentilerini yüklemeyi düşünebilirsiniz.

Eklentim nasıl uluslararasılaştırılabilir?

WordPress, uluslararasılaştırma (i18n) ve yerelleştirme işlemlerini gerçekleştirmek için GNU gettext çerçevesini kullanır. Eklentinizde, çevrilmesi gereken tüm metin dizelerini belirli fonksiyonlar kullanarak sarmanız gerekir. En yaygın kullanılan yöntemlerden biri… __() Kod içinde metinleri çevirmek ve geri döndürmek için kullanılır, ayrıca… _e() Kullanımı: Bir metni çevirmek ve doğrudan çıktı olarak vermek için kullanılır. Ayrıca, eklentinin başlık kısmındaki yorumlarda doğru ayarlamaların yapılması gerekmektedir. Text DomainVe eklenti yüklendiğinde kullanılacak. load_plugin_textdomain() Bu fonksiyon, çeviri dosyalarını yüklemek için kullanılır. Daha sonra, Poedit gibi bir yazılım kullanarak çevirileri oluşturabilirsiniz. .pot Şablon dosyalarını oluşturun ve farklı diller için gerekli içerikleri hazırlayın. .po.mo Çeviri dosyası.