Sıfırdan Bir: İlk WordPress Eklentinizi Adım Adım Geliştirmek İçin Kapsamlı Rehber

2 dakika okuma.
2026-04-10
2026-06-03
2,907
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 Ortamının Hazırlanması

Kod yazmaya başlamadan önce, stabil ve yerel makinenizden izole edilmiş bir geliştirme ortamı oluşturmak çok önemlidir. Bu, sadece ana sitenizi korumakla kalmaz, aynı zamanda denemeler yapmanıza ve hataları ayıklamanıza da olanak tanır.

Verimli bir ortam genellikle üç temel bileşenden oluşur. İlk olarak, Apache veya Nginx gibi bir web sunucu yazılımı bulunur. İkincisi, hedeflediğiniz WordPress sürümüyle uyumlu bir PHP çalışma ortamıdır. Son olarak, MySQL veya MariaDB veritabanıdır. Bu yazılımları manuel olarak tek tek kurmak mümkün olsa da, yerel sunucu entegrasyon ortamını kullanmanızı şiddetle tavsiye ederiz.

Piyasada Local by Flywheel, XAMPP, MAMP veya DevKinsta gibi birçok mükemmel entegre ortam aracı bulunmaktadır. Bu araçlar, yukarıda bahsedilen bileşenleri bir araya getirir ve tek tıklamayla kurulum ve başlatma imkanı sunar. Ayrıca, e-posta yakalama, site klonlama ve tek tıklamayla SSL yapılandırma gibi geliştiricilere yönelik özellikler de içerirler; bu da geliştirme verimliliğinizi büyük ölçüde artırabilir.

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

Sunucu ortamının yanı sıra, bir kod editörüne de ihtiyacınız var. İşlevsel bir entegre geliştirme ortamı (örneğin PhpStorm) seçebilirsiniz; aynı zamanda hafif fakat genişletilebilir bir editör (örneğin Visual Studio Code) de tercih edebilirsiniz. Eklenti geliştirme için, eklentilerin en azından PHP kod ipuçları, sözdizimi vurgulama ve dosya yönetimi özelliklerine sahip olması önerilir. Metin editörüne bazı özel eklentiler (örneğin WordPress ile ilgili kod parçaları, PHP Intelephense vb.) yüklemek, kodlama sürecini daha sorunsuz hale getirecektir.

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

Eklentinin temel dosyalarının yapısını anlamak

WordPress eklentileri, esasen bir veya daha fazla PHP dosyasından oluşan koleksiyonlardır. Bu dosyalar, WordPress çekirdek sisteminin onları tanıyıp yükleyebilmesi için belirli bir yapıya ve kurallara uyarlar.

Her eklenti, bir ana dosya ile başlar. Bu ana dosya, eklentinin “giriş noktasıdır” ve belirli bir dosya başlığı yorumu içermelidir. Bu dosya başlığı, eklentinin adı, açıklaması, sürümü, yazarı gibi meta bilgilerini içeren çok satırlı bir yorum bloğudur. WordPress, bu bilgileri okuyarak arka planda eklentinizi yönetim arayüzünde gösterir. Ana dosyanın adı özelleştirilebilir, ancak genellikle… plugin-name.php Bu tür bir form.

İşte eklentinin ana dosyasının başlık kısmına ait temel bir örnek:

<?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
 */

Ana dosya hazırlandıktan sonra, onu doğru bir şekilde yerleştirmeniz gerekiyor. Eklentinin temel dosyası mutlaka belirli bir konumda bulunmalıdır. /wp-content/plugins/ Katalogdaki bağımsız bir klasör içinde. Klasörün adı kısa, benzersiz olmalı ve küçük harfler ile tireler kullanılmalıdır. Örneğin, eklentimizi şu şekilde adlandırabiliriz: /wp-content/plugins/my-first-plugin/ Bu yol altında bulunuyor ve ana dosya… my-first-plugin.php Bu dosyayı bu klasörün ana dizinine koyun.

Tavsiye edilen okuma WordPress eklenti geliştirme analizi: özel işlev modüllerini sıfırdan oluşturmanın kapsamlı rehberi

İlk işlevinizi yazın.

Şimdi, eklentiye ilk etkileşimli özelliği ekleyelim. WordPress, eklentilerin belirli anlarda işlevleri değiştirmesine veya eklemesine olanak tanıyan “Kancalar” (Hooks) mekanizması aracılığıyla bunu sağlar. Kancalar esas olarak iki türe ayrılır: Eylem Kancaları (Action Hooks) ve Filtre Kancaları (Filter Hooks).

Eylem kancaları, WordPress’in belirli noktalarında (örneğin makale yayınlama, sayfa yükleme vb.) kendi kodunuzu çalıştırmanıza olanak tanır. En yaygın örneklerden biri, web sayfasının alt kısmına özel bilgiler eklemektir. Bunu yapmak için eylem kancalarını kullanabiliriz. wp_footer Bu işlem, bir eylem kancası (action hook) aracılığıyla gerçekleştirilir.

Bir özel fonksiyon yazmamız gerekiyor ve WordPress’e bunu nasıl yapacağımızı söylememiz gerekiyor. wp_footer Tetiklendiğinde çalıştırılır. Bu işleme, bir fonksiyonu veya metodu bir “kancaya” (hook) monte etmek denir. İşte bir uygulama örneği:

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_first_plugin_display_footer_text() {
    echo ‘<p style="text-align: center; color: #666;">İlk eklentim tarafından sizin için sunuluyor.</p>’;
}
add_action( ‘wp_footer’, ‘my_first_plugin_display_footer_text’ );

add_action() Bu, montaj işleminin temel fonksiyonudur. Yukarıdaki adımları tamamladıktan sonra, sitenizin önbelleğini temizleyin ve ön uç sayfayı yenileyin; eklentinin eklediği sayfa altı metnini görmelisiniz.

Şimdi, filtre kancalarıyla ilgilenelim. Filtre kancaları, kendisine iletilen verileri değiştirmenize olanak tanır. Örneğin, makale başlığının içeriğini değiştirmek istiyoruz. Bunu yapmak için… the_title Filtreler. Aşağıdaki kod, tüm makale başlıklarının önüne bir önek eklemenin nasıl yapılacağını göstermektedir:

function my_first_plugin_prefix_title( $title ) {
    // 检查是否在主循环中且不是管理后台,避免影响后台标题显示
    if ( ! is_admin() && in_the_loop() ) {
        $title = ‘[插件前缀] ’ . $title;
    }
    return $title;
}
add_filter( ‘the_title’, ‘my_first_plugin_prefix_title’ );

Eklentiyi geliştirin: Yönetim menüsü ve ayar sayfası ekleyin.

İyi bir şekilde geliştirilmiş bir eklentinin genellikle yönetici ile etkileşime girmesi gerekmektedir; bu da kendi menü öğelerinin ve ayar sayfalarının eklenmesini gerektirir. Bu sayede kullanıcılar, kodla uğraşmadan eklentiyi yapılandırabilirler.

Tavsiye edilen okuma Sıfırdan Başlayın: WordPress Eklenti Geliştirmenin Tam Kılavuzu ve Uygulamalı Eğitimi

WordPress arka planındaki sol taraftaki yönetim menüsüne yeni bir üst düzey menü öğesi eklemek için şunları kullanmanız gerekmektedir: add_menu_page() Bu fonksiyon, menünün başlığını, yetkilerini, benzersiz tanımlayıcısını ve geri çağırma fonksiyonunu tanımlamak için birkaç parametre gerektirir. Bunları uygun zamanda (genellikle…) sağlamanız gerekir. admin_menu Action hook: Onu çağırın.

Aşağıda, basit bir üst düzey menü ve ayarlar sayfasının oluşturulmasına dair bir örnek bulunmaktadı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.
function my_first_plugin_add_admin_menu() {
    add_menu_page(
        ‘我的第一个插件设置’, // 页面标题
        ‘我的插件’,           // 菜单标题
        ‘manage_options’,     // 所需权限(管理员)
        ‘my-first-plugin-settings’, // 菜单slug
        ‘my_first_plugin_render_settings_page’, // 渲染页面的回调函数
        ‘dashicons-admin-plugins’, // 图标(Dashicons)
        100                     // 菜单位置
    );
}
add_action( ‘admin_menu’, ‘my_first_plugin_add_admin_menu’ );

Daha sonra, bir geri çağırma (callback) fonksiyonu tanımlamanız gerekiyor. my_first_plugin_render_settings_page() Bu ayar sayfasının HTML içeriğini oluşturmak için. Bu fonksiyonda, formu görüntüleyebilir ve formun gönderilmesini (Ajax olmadan) işleyebilirsiniz.

Eklentilerin ayarlarını güvenli bir şekilde depolamak ve erişmek için WordPress’in Option API’sini kullanmalısınız. Bunu yapabilirsiniz. add_option()get_option()update_option()delete_option() Belirtilen adlı dosyayı işlemek için `read`, `write`, `chmod`, `mkdir` gibi fonksiyonlar kullanılır. my_first_plugin_options Seçenek verileri. Formda, WordPress’in yerleşik özelliklerini kullanmanız gerekiyor. settings_fields()do_settings_sections() Bu fonksiyon, ayarlanan verilerin güvenli bir şekilde dışa aktarılmasını sağlar; ancak genellikle daha resmi bir “ayar API’si” ile birlikte kullanılır. Basit ayar sayfaları için, form gönderimlerini manuel olarak işlemek, verileri doğrulamak ve temizlemek de yaygın bir uygulamadır.

Özetle.

İlk WordPress eklentinizi geliştirmek, sistematik bir öğrenme sürecidir. Güvenli bir yerel geliştirme ortamı oluşturarak başladınız ve eklentilerin en temel dosya yapısını ve adlandırma kurallarını öğrendiniz. Daha sonra, WordPress eklentilerinin genişletilebilirliğinin temelini oluşturan “kancalar” (hooks) mekanizmasını öğrendiniz ve eylem kancaları (action hooks) aracılığıyla içerikleri görüntüleyebildiniz; ayrıca filtre kancaları (filter hooks) kullanarak verileri değiştirebildiniz. Son olarak, eklentiyi daha kolay yönetebilmek için arka plan yönetim menüleri ve ayar sayfaları oluşturmayı öğrendiniz ve WordPress’in seçenek API’si (option API) ile etkileşime girerek verilerin kalıcı olarak saklanmasını sağladınız.

Bu adımları takip ederek sadece işlevsel bir eklenti oluşturmakla kalmadınız; daha da önemlisi, genişletilebilir bir temel altyapı da oluşturdunuz. Bu temel üzerine, diğer “hook” (bağlantı noktaları) keşfetmek, JavaScript (özellikle Ajax) konusunda derinlemesine bilgi edinmek, özel veritabanı tabloları oluşturmak veya kısa kodlar geliştirmek gibi yöntemlerle eklentinize daha karmaşık ve güçlü özellikler ekleyebilirsiniz.

Sıkça Sorulan Sorular.

###: WordPress eklentisi geliştirmek için programlama deneyimine sahip olmak zorunda mıyım?
Temel PHP, HTML ve biraz CSS bilgisine sahip olmanız işinizi kolaylaştıracak olsa da, sıfırdan başlamak da mümkündür. Önemli olan adım adım ilerlemektir; önce mevcut eklentilerin kodlarını değiştirerek ve taklit ederek başlayın, ardından WordPress’in sunduğu temel fonksiyonları ve işlevleri (hook’ları) anlamaya çalışın. Bu süreçte, resmi dokümantasyonları dikkatlice inceleyin ve pratik yapın.

Neden eklentim arka planda aktive edilemiyor?

Eklentinin etkinleştirilmesindeki başarısızlığın genellikle birkaç nedeni vardır. En yaygın neden, ana dosyanın dosya başlığı bilgilerinin doğru formatlanmamış olması veya gerekli alanların (örneğin “Plugin Name” gibi) eksik olmasıdır. Bir diğer neden ise PHP kodunda bulunan sözdizimi hatalarıdır; bu hataları web sunucusunun hata günlüğünü inceleyerek tespit edebilirsiniz. Ayrıca, eklenti klasörünün veya ana dosyanın adı diğer yüklü eklentilerle çakışıyor olabilir; ya da eklentinin gerektirdiği PHP sürümü mevcut sunucu ortamınızdan daha yüksek olabilir.

Bir eklentinin gelişmiş ayarlarını nasıl birden fazla sekme halinde düzenleyebilirim?

Bunu birden fazla çağrı yaparak gerçekleştirebilirsiniz. add_menu_page() Bağımsız bir üst düzey menü oluşturmak mümkündür, ancak bu arka plandaki yapıyı karmaşık hale getirebilir. Daha iyi bir yaklaşım kullanmaktır. add_submenu_page() Bir fonksiyon oluşturun ve ek ayar sayfalarını ana menünüze bir alt menü öğesi olarak ekleyin. Alt menü oluştururken, ilk parametreyi (üst menünün slug’ını) üst düzey menünüzün slug’ı olarak ayarlayın; sonraki parametreler ise alt menünün başlığını ve işlevlerini tanımlamak için kullanılır.

Eklenti geliştirme işlemi tamamlandıktan sonra, onu nasıl güvenli bir şekilde yayınlayabilirsiniz?

WordPress eklenti dizinine bir eklenti yayınlamadan önce, kodun güvenliğinden emin olmak çok önemlidir. Tüm kullanıcı girdilerini sıkı bir şekilde doğrulamanız ve escape (kaçırma) işlemlerini yapmanız gerekir. WordPress tarafından sağlanan fonksiyonları kullanmanız önerilir. sanitize_text_field()wp_kses()esc_html()Aynı zamanda, tüm doğrudan yapılan veritabanı işlemleri için… $wpdb Sınıf tarafından sağlanan yöntemler, SQL enjeksiyonlarına karşı koruma sağlar. Yayınlamadan önce, eklentinin uluslararasılaştırılması gerekmektedir ve tüm kullanıcılar tarafından görülebilecek metinler için çeviri dosyaları hazırlanmalıdır.