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

2 dakika okuma.
2026-03-18
2026-06-04
1,816
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ştirmenin temel kavramları

Belirli kodları yazmaya başlamadan önce, WordPress eklentilerinin temel yapısını ve çalışma prensiplerini anlamak çok önemlidir. Bir eklenti, esasen WordPress’in sunduğu zengin API aracılığıyla çekirdek işlevlerini genişleten bir veya daha fazla dosyanın toplamıdır. Tüm eklentiler, web sitesinin belirli bir bölümünde saklanır./wp-content/plugins/Dizin içinde, her eklentinin kendine ait bir klasörü vardır.

Eklentinin çekirdeği, ana dosyasıdır. Bu dosya, eklentinizi WordPress sisteminize bildirmek için belirli eklenti başlık bilgilerini içermelidir. En temel eklenti başlık bilgileri arasında eklentinin adı, açıklaması, sürümü, yazarı vb. bulunur. WordPress, bu meta verileri okuyarak arka planda eklentinizi tanır ve yönetim arayüzünde gösterir.

WordPress eklenti geliştirmenin temeli, güçlü Hook (Kancalar) sistemidir. Hook’lar esas olarak iki ana türe ayrılır: Eylemler (Actions) ve Filtreler (Filters).动作Belirli yürütme noktalarında (örneğin makale yayınlamak, sayfa yüklemek gibi) kendi kodunuzu ekleyerek belirli bir işlevi gerçekleştirmenize izin verilir.过滤器Bu durum, verilerin veritabanına kaydedilmesinden veya tarayıcıya gönderilmesinden önce bu verileri değiştirmenize izin verir. Bunu anlamak ve ustaca kullanabilmek önemlidir.add_action()add_filter()Bu iki fonksiyon, herhangi bir etkili eklenti geliştirmenin ön koşuludur.

Tavsiye edilen okuma Rahatça Başlayıp Uzmanlaşmaya: WordPress Eklenti Geliştirme Kapsamlı Rehberi ve Pratik Eğitim Kursu

Başka bir kritik kavram da kısa kodlardır (Shortcodes). Kısa kodlar, kullanıcıların parantezler arasına basit etiketler ekleyerek belirli işlemleri gerçekleştirmesine olanak tanır (örneğin…).[my_gallery]Bu, makalelerde veya sayfalarda eklentilerin sunduğu karmaşık özellikleri çağırmak için kullanılır.add_shortcode()Fonksiyonlar, kendi kısa kodlarınızı kolayca kaydetmenize olanak tanı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%).

Temel bir eklenti oluşturun: “Hello World” uygulaması

Teori ile pratik birleştirmek en iyi öğrenme yöntemidir. En basit “Hello World” eklentisini oluşturarak başlayalım ve bir eklentinin oluşturulmasından etkinleştirilmesine kadar olan tüm süreci anlayalım.

Öncelikle, yerel geliştirme ortamınızda veya test web sitenizde…/wp-content/plugins/Dizin içinde, “” adında yeni bir klasör oluşturun.my-first-pluginBu klasör içinde, örneğin “main.php” adında bir ana PHP dosyası oluşturun.my-first-plugin.php

Bundan sonra, bu ana dosyaya eklenti başlık bilgilerini yazmanız gerekiyor. Bu, WordPress’e bunun geçerli bir eklenti olduğunu bildiren kritik bir adımdır.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://www.yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习插件开发的“Hello World”示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Dosyayı kaydettikten sonra, WordPress arayüzüne giriş yapın ve “Eklentiler” menüsüne gidin. Eklentiler listesinde “İlk Eklentim” adlı eklentiyi görmelisiniz. Şimdi onu etkinleştirebilirsiniz; ancak henüz herhangi bir gerçek işlevi yok.

Tavsiye edilen okuma Sıfırdan başlayarak WordPress eklenti geliştirmeyi öğrenin: Kapsamlı bir rehber ve uygulamalı eğitimler.

Eklentinin belirli bir işi yapabilmesi için ona basit bir özellik ekledik: Web sitesinin alt kısmında özelleştirilmiş bir metin satırı göstermek. Bunun için “eylem kancası” (action hook) kullanacağız.wp_footerAşağıdaki kodu eklenti başlık bilgilerinin altına ekleyin:

function my_first_plugin_display_footer_text() {
    echo '<p style="text-align: center; color: #666;">Bu, ilk WordPress eklentimle eklediğim sayfa altı (footer) metnidir!</p>';
}
add_action( 'wp_footer', 'my_first_plugin_display_footer_text' );

Dosyayı kaydettikten sonra, web sitenizin ön yüzünü yenileyin ve sayfanın en altına kadar kaydırın; eklenen metni görmelisiniz. Böylece, temel özelliklere sahip bir WordPress eklentisi oluşturmayı tamamlamış olursunuz. Bu basit örnek, eklentinin oluşturulması, tanımlanması, etkinleştirilmesi ve işlevlerin hook’lar aracılığıyla eklenmesi gibi temel adımları kapsamaktadır.

Gelişmiş özelliklere sahip eklentiler oluşturma: En iyi uygulamalar ve güvenlik

Eklentilerin işlevleri giderek karmaşıklaştıkça, kodun sürdürülebilirliği, güvenliği ve performansı açısından en iyi uygulamalara uymak çok önemlidir. En önemli ilke, tüm işlevlerin yalnızca eklentiler aracılığıyla eklenmesi ve temanın doğrudan değiştirilmemesidir.functions.phpDosya. Bu, işlevlerin temalardan ayrılmasını sağlar; böylece bir temayı değiştirdiğinizde işlevleriniz hala çalışır.

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

Güvenlik her şeyden önce gelir. Kullanıcılardan veya web sitelerinin ön yüzünden gelen verilere asla güvenmeyin. Form gönderimleri, URL parametreleri veya herhangi bir kullanıcı girdisiyle ilgilenirken, WordPress tarafından sağlanan güvenlik fonksiyonlarını kullanarak verileri doğrulamalı, temizlemeli ve escape (kaçış) işlemi yapmalısınız. Örneğin,sanitize_text_field()Metin girdisini temizleyin ve kullanın.wp_kses_post()Güvenli HTML etiketlerinin kullanılmasına izin verilir.esc_html()esc_attr()Çıktıyı oluştururken karakterlerin özel anlamlarını korumak için escape işlemleri yapılmalıdır. Ayrıca, verilerde değişikliğe neden olabilecek tüm işlemler (silme, güncelleme vb.) öncesinde mutlaka yetki kontrolü yapılmalıdır.current_user_can()İşlev.

Kodu organize bir şekilde yazın. Karmaşık bir eklenti için, kodu düzenlemek amacıyla nesne yönelimli programlama (OOP) temelli sınıf yapılarını kullanmanız önerilir. Bu, fonksiyon adı çakışmalarını önlemeye ve kodun okunabilirliğini artırmaya yardımcı olur (çünkü tüm fonksiyonlar sınıfın ad alanı içindedir). Aynı zamanda, farklı işlevsel modülleri (arka plan ayar sayfaları, ön uç araçları, özelleştirilmiş veritabanı tablo işlemleri vb.) farklı dosyalara ayırın ve bunları ana dosya aracılığıyla koşullu olarak yükleyin.

Uluslararasılaştırma ve Yerelleştirme: Eğer eklentiniz küresel kullanıcılara yönelikse, en başından itibaren uluslararasılaştırma için gerekli hazırlıkları yapmalısınız. Bu, kullanıcılara yönelik tüm metinlerin farklı dillerde sunulması gerektiği anlamına gelir.__()_e()Fonksiyonlar paketlenir ve metin alanı (Text Domain) ayarlanır. Böylece diğer katkıda bulunanlar eklentinizi kolayca diğer dillere çevirebilirler.

Tavsiye edilen okuma WordPress Eklenti Geliştirme Başlangıç Kılavuzu: İlk Özel Özellik Genişlemenizi Sıfırdan Oluşturun

Eklentilerin ayarlarını işleyin. Çoğu eklentinin bir arka plan ayar sayfasına ihtiyacı vardır. WordPress, geliştiricilerin seçenek sayfalarını standartlara uygun ve güvenli bir şekilde oluşturmalarına yardımcı olmak için bir ayar API’si sağlar. Doğrudan formlar oluşturup verileri işlemek yerine, bu API’yi kullanmak daha avantajlıdır.register_setting(), add_settings_section()add_settings_field()Bu tür fonksiyonlar, güvenlik kontrollerini ve veri kaydetme işlemlerini otomatik olarak gerçekleştirebildiğinden daha tavsiye edilen bir yaklaşımdır.

İleri Seviye Konu: Özelleştirilmiş Veritabanı Tabloları ve AJAX Etkileşimi

Eklentilerin karmaşık ve bağımsız verileri depolaması gerektiğinde, özel veritabanı tabloları oluşturulması gerekebilir. Bu işlem genellikle eklentinin etkinleştirildiği sırada gerçekleşir. WordPress bunun için gerekli altyapıyı sağlar.dbDelta()Bu fonksiyon, tablo yapısını güvenli bir şekilde oluşturmak veya güncellemek için kullanılır. Tablo oluşturmak için gerekli SQL ifadesini bu fonksiyona iletmelisiniz.

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.

Örneğin, eklentinin ana dosyasında, bir tablo oluşturmak için bir etkinleştirme işlemi (activation hook) tanımlayabilirsiniz:

function my_plugin_create_custom_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'my_custom_data';
    $charset_collate = $wpdb->get_charset_collate();

$sql = "CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        name varchar(100) NOT NULL,
        email varchar(100) NOT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}
register_activation_hook( __FILE__, 'my_plugin_create_custom_table' );

AJAX etkileşimlerinin gerçekleştirilmesi, hem ön uç kullanıcı etkileşimleri hem de arka uç yönetim işlemleri için eklentinize daha akıcı bir kullanıcı deneyimi sağlayabilir. WordPress’ün kendi AJAX işleme sistemi bulunmaktadır.admin-ajax.phpDosya işleme isteği. Bunun için hem ön tarafta (hem de arka tarafta) ayrı ayrı işlemler yapılması gerekmektedir.wp_ajax_wp_ajax_nopriv_PHP işlem fonksiyonlarını kaydetmek için kullanılan araçlar (hook’lar).

Ön uç JavaScript ile istek gönderme örneği (jQuery kullanılarak):

jQuery.ajax({
    url: myPluginAjax.ajax_url, // 通过wp_localize_script传递的URL
    type: 'POST',
    data: {
        action: 'my_plugin_frontend_action',
        nonce: myPluginAjax.nonce, // 安全随机数
        some_data: 'value'
    },
    success: function(response) {
        console.log('操作成功:', response);
    }
});

İlgili PHP tarafı işlem fonksiyonu:

add_action( 'wp_ajax_my_plugin_frontend_action', 'handle_my_frontend_action' );
add_action( 'wp_ajax_nopriv_my_plugin_frontend_action', 'handle_my_frontend_action' ); // 如果允许未登录用户
function handle_my_frontend_action() {
    // 检查nonce确保请求安全
    check_ajax_referer( 'my_plugin_nonce_action', 'nonce' );
    // 处理数据...
    wp_send_json_success( array('message' => '处理完成!') );
}

Özetle.

WordPress eklenti geliştirme, temelde çekirdek hook (bağlantı noktası) mekanizmalarını ve dosya yapısını anlamaktan başlayan, ardından arka plan arayüzlerinin oluşturulması, verilerin güvenli bir şekilde işlenmesi, özel veritabanı tablolarının yönetilmesi ve dinamik AJAX etkileşimlerinin gerçekleştirilmesine kadar ilerleyen sistematik bir süreçtir. Güvenilir ve güvenilir eklentiler geliştirmenin temeli, en iyi uygulamalara ve özellikle güvenli kodlama standartlarına uymaktır. Basit bir “Hello World” örneğiyle başlayarak, karmaşık işlevleri küçük parçalara ayırın ve WordPress’in geniş API’si ile topluluk kaynaklarından tam olarak yararlanın; böylece herhangi bir WordPress sitesinin yeteneklerini etkili bir şekilde genişletebilecek, güçlü ve standartlara uygun eklentiler oluşturabilirsiniz.

Sıkça Sorulan Sorular.

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

Sağlam bir PHP programlama temeline sahip olmanız gerekmektedir; çünkü eklenti kodunun büyük bir kısmı PHP ile yazılmıştır. Aynı zamanda, eklentinin ön uç arayüzünü ve etkileşimlerini oluşturmak için HTML, CSS ve JavaScript konularında temel bilgilere sahip olmanız da çok önemlidir. Karmaşık verileri işlemek için MySQL veritabanının temel kavramlarını (örneğin SQL sorgularını) bilmek faydalı olacaktır. Son olarak, WordPress’in kendisinin temel işlemleri ve kavramlarına aşina olmanız bir ön koşuldur.

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

Öncelikle, emin olun ki sizin…wp-config.phpDosyada etkinleştirildi.WP_DEBUGWP_DEBUG_LOGBu, PHP hatalarını ve uyarılarını kaydedecektir./wp-content/debug.logDosyada bulunan bilgiler doğrudan kullanıcılara gösterilmez; bunun yerine, daha karmaşık mantık işlemleri için belirli yöntemler kullanılır.error_log()Fonksiyon, değişken değerlerini loglara yazdırır. Ayrıca, AJAX isteklerini ve ön uç betiklerini hata ayıklamak için tarayıcı geliştirici araçlarının ağ paneli ve JavaScript konsolu kullanılması şarttır.

Eklentim farklı WordPress sürümleriyle nasıl uyumlu olabilir?

Geliştirme sırasında, artık kullanımdan kaldırılmış (deprecated) olarak işaretlenmiş fonksiyonların kullanımından kaçınılmalıdır. WordPress çekirdek fonksiyonlarını, özellikle de daha yeni olanları çağırmadan önce, bunların yerine alternatifler kullanılabilir.function_exists()Veya koşullu ifadeler, kullanılabilir olup olmadıklarını kontrol eder ve böylece geriye dönük uyumluluk sağlayan alternatif çözümler sunar. Eklentinin açıklamasında, testten geçen en düşük WordPress sürümü açıkça belirtilmelidir. Eklentinizi düzenli olarak güncellemek ve farklı sürümler arasında testler yapmak, uyumluluğu korumanın anahtarıdır.

Geliştirme işlemi tamamlandıktan sonra, eklentimi nasıl yayınlayabilirim?

Eklentiyi resmi WordPress.org eklenti dizinine yayınlamak için öncelikle WordPress.org’da bir hesap oluşturmanız ve eklenti başvurusunda bulunmanız gerekmektedir. İnceleme onaylandıktan sonra, eklenti kodunuzu size atanmış depoya Subversion (SVN) kullanarak göndermeniz gerekmektedir. Eklenti kodunun resmi kodlama standartlarına ve dizin yapısı gereksinimlerine uygun olduğundan emin olmalı ve gerekli dosyaların da dahil edildiğinden emin olmalısınız.readme.txtDosyalar. Ticari eklentiler için, kendi web sitenizde veya üçüncü parti pazarlarda dağıtım yapmayı seçebilirsiniz.