Sıfırdan uzmana: WordPress eklenti geliştirmenin eksiksiz rehberi ve en iyi uygulamaları.

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

WordPress eklentisi nedir ve temel yapısı nasıldır?

Kod yazmaya başlamadan önce, WordPress eklentilerinin özünü anlamak çok önemlidir. Basitçe söylemek gerekirse, bir eklenti, WordPress’in temel işlevlerini değiştirmeden sorunsuz bir şekilde genişletebilen bir dizi PHP dosyasından oluşur. Bu sayede eklentilerin yükseltilmesi ve yönetimi bağımsız ve güvenli hale gelir. Her eklentinin temeli, genellikle eklentinin adıyla aynı isme sahip olan PHP dosyasıdır.

Eklentinin çekirdeği, belirli bir dosya başlığı yorumudur. Bu yorum, WordPress’e bunun bir eklenti olduğunu bildirir ve aynı zamanda eklentinin arka plan yönetim arayüzünde nasıl görüntüleneceğine dair meta bilgileri de sağlar. Ana dosya genellikle eklentinin adıyla adlandırılır, örneğin… my-first-plugin.phpBu dosyanın başında, belirli bilgileri içeren bir PHP yorum bloğu yazmanız gerekiyor.

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

Bu yorum bloğu, eklentinin “kimlik kartı”dır.Plugin NameBu bir zorunlu alandır; diğer bilgiler isteğe bağlıdır. Ancak, iyi bir kullanıcı deneyimi sağlamak için bilgilerin tam olarak doldurulması önerilir. Özellikle… Text DomainBu, eklentinin uluslararasılaştırılması (çok dilli destek) için kullanılır ve eklentinin klasör adı veya ana dosya adıyla uyumlu olmalıdır.

Tavsiye edilen okuma WordPress Eklenti Geliştirme Başlangıç Kılavuzu: Sıfırdan Profesyonel İşlevsel Modüller Oluşturmaya

Temel bir eklenti, yalnızca bu dosya başlığını ve birkaç basit PHP kodunu içerebilir. Örneğin, yorum bloğunun hemen altına, web sitesinin alt kısmındaki metni değiştirmek için bir fonksiyon ekleyebilirsiniz.

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

Ana dosyanın yanı sıra, eklentiler genellikle JavaScript ve CSS dosyalarını saklamak için kullanılan diğer dosyaları ve klasörleri de içerir. /assets Katalog, kullanıcı arayüzünün içeriklerinin saklanması için kullanılır. /admin/public İçindekiler ve uluslararasılaştırma için kullanılanlar… /languages İçindekiler. İyi yapılandırılmış bir proje, profesyonel geliştirmeye doğru atılan ilk adımdır.

İlk işlevsel eklentinizi oluşturun.

Teori, pratikten ayrılamaz. Şimdi, geliştirme sürecini deneyimlemek için basit ancak tam özellikli bir eklenti oluşturalım. Bu eklentinin amacı, tüm makale içeriklerinin sonuna otomatik olarak özelleştirilmiş bir metin eklemektir.

Öncelikle, WordPress kurulum dizininizde… /wp-content/plugins/ Aşağıda yeni bir klasör oluşturun ve adını “” olarak belirleyin. my-custom-footer-textDaha sonra bu klasör içinde ana PHP dosyasını oluşturun; dosya adı klasör adıyla aynı olmalıdır:my-custom-footer-text.phpBir önceki bölümde bahsedilen eklenti başlık bilgilerini kopyalayın ve bunları kendi bilgilerinizle değiştirin.

Sonrasında, makale içeriğini işlemek için bir çekirdek fonksiyona ihtiyacımız var. Bir fonksiyon tanımlayalım. mcf_add_footer_textMakale içeriğini bir parametre olarak alır ve belirlediğimiz metni sonuna ekledikten sonra sonuçu geri döndürür.

Tavsiye edilen okuma WordPress eklenti geliştirme tam rehberi: Sıfırdan bir eklenti oluşturma

function mcf_add_footer_text( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $footer_text = '<p style="color: #888; font-size: 0.9em;">--- Bu makaleyi okuduğunuz için teşekkür ederiz ---</p>';
        $content .= $footer_text;
    }
    return $content;
}

Bu fonksiyon içinde bir dizi koşul kontrolü yapılmaktadır:is_single() Yalnızca tek bir makale sayfasında etkili olmasını sağlayın.in_the_loop() WordPress’un ana döngüsünde emin olun.is_main_query() Ana sorgunun, yan sorgu olmadığından emin olun. Bu kontroller, kodumuzun beklendiği dışı yerlerde (örneğin özetlerde, kenar çubuklarında) çalışmasını önler.

Bir fonksiyon tanımladıktan sonra, onu WordPress’in işleyiş sürecine entegre etmemiz gerekiyor. Bunun için WordPress’in temel mekanizmalarından biri olan “Kancalar” (Hooks) kullanılır. Biz de bunu yapacağız. the_content Filtre kancası, makale içeriğini filtrelemek için özel olarak tasarlanmıştır. Ana dosyanın baş kısmındaki yorumların hemen altına aşağıdaki kodu ekleyin:

add_filter( 'the_content', 'mcf_add_footer_text' );

Bu kod satırının anlamı şudur: WordPress’e, makale içeriğini çıkarmaya hazırlandığınızda, önce içeriği belirli bir yere (muhtemelen bir fonksiyona veya değişkene) aktarmanız gerektiğini söyler. mcf_add_footer_text Fonksiyon işlemlerini gerçekleştirir, ardından işlenmiş sonucu döndürür ve görüntüler. Dosyayı kaydettikten sonra, WordPress arayüzüne giriş yapın ve “Eklentiler” menüsünde “İlk Eklentim”i görmelisiniz; onu etkinleştirin. Şimdi, herhangi bir makaleye girdiğinizde, makalenin sonunda eklenen gri teşekkür metnini göreceksiniz.

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

Temel geliştirme mekanizmalarını öğrenin: Eylem (Action) ve filtre (Filter) hook’ları

Eklentiler geliştirmede ustalaşmak istiyorsanız, WordPress’in Hook (Kancalar) sistemini derinlemesine anlamak şarttır. Hook’lar iki türe ayrılır: Eylem Hook’ları (Action Hooks) ve Filtre Hook’ları (Filter Hooks). Bunlar, WordPress’in eklentilebilir yapısının temelini oluşturur ve çekirdek kodun belirli noktalarında kendi kodunuzu eklemenize veya verileri değiştirmenize olanak tanır.

Eylem kancaları (Actions), bir şey yapmanız için size zaman noktaları sağlar. Bir eylem tetiklendiğinde, bu eyleme bağlı tüm fonksiyonlar çalıştırılır. Bu fonksiyonlar genellikle bir görevi yerine getirmek için kullanılır; örneğin içerik çıkarmak, verileri bir veritabanına eklemek veya e-posta göndermek gibi. Eylem fonksiyonları, çağıran tarafa doğrudan herhangi bir değer döndürmez. Bir eylem eklemek için… add_action() Fonksiyonlar. Tipik bir örnek, bir web sayfasının belirli bir bölümüne meta etiketler eklemektir.

function myplugin_add_meta_tag() {
    echo '<meta name="my-custom-meta" content="自定义内容" />';
}
add_action( 'wp_head', 'myplugin_add_meta_tag' );

wp_head Bu, bir temanın belirli bir bölümünde çağrılan bir eylem kancasıdır. Fonksiyonumuz, her sayfanın bu konumunda bir parça HTML kodu çıkaracaktır.

Tavsiye edilen okuma Başarılı bir çevrimiçi iş kurmak: Sıfırdan uzmanlığa kadar web sitesi oluşturma rehberi

Filtre kancaları (Filters), “verileri değiştirmek” için kullanılır. Bir filtre uygulandığında, veriler tüm bağlı fonksiyonlara iletilir; her fonksiyon verileri değiştirir ve işlenmiş değeri döndürür. Filtre fonksiyonlarının mutlaka bir değer döndürmesi gerekir. Filtre eklemek için… add_filter() Fonksiyonlar: Makale içeriğini değiştirmemiz, bir önceki bölümde yaptığımız işlemdir ve bu, filtrelerin tipik bir kullanımıdır. Bir diğer yaygın örnek ise makalenin başlığını değiştirmektir.

function myplugin_uppercase_title( $title ) {
    return strtoupper( $title );
}
add_filter( 'the_title', 'myplugin_uppercase_title' );

WordPress, kullanıcı girişinden makale kaydetmeye, menü oluşturmaktan sorgu çalıştırmaya kadar hemen hemen her temel işleme ilişkin binlerce “hook” (düğüm) sunar. Bu hook’ları anlamak ve ustaca kullanabilmek, gelişmiş eklenti geliştirmenin anahtarıdır. Resmi eklenti kılavuzundaki hook listesine göz atabilir veya doğrudan çekirdek kodda arama yapabilirsiniz. do_action()apply_filters() Onları keşfetmek için gelin.

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.

Geliştirme alanında profesyonel eklentiler oluşturmanın ileri düzey uygulamaları

Eklentilerin işlevleri karmaşıklaştıkça, iyi bir organizasyon, güvenlik ve kullanıcı deneyimi hayati önem kazanır. İşte bazı kritik, ileri düzey uygulamalar:

İlk olarak güvenlik gelir. Kullanıcılardan alınan tüm veriler (örneğin formlardan gelen veriler) $_GET$_POST$_COOKIEHer bir veri girişi, kullanılmadan veya veritabanına kaydedilmeden önce doğrulanmalı, temizlenmeli ve uygun şekilde işlenmelidir (örneğin, özel karakterlerden arındırılmalıdır). WordPress, verileri temizlemek için kullanılabilecek bir dizi yardımcı fonksiyon sunar. sanitize_text_field()Kaçış karakteri olarak kullanılır. esc_html()esc_url()wp_kses_post()Ayrıca, güvenli veritabanı işlemleri için kullanılanlar… $wpdb Sınıf metodu.

İkincisi, nesne yönelimli programlama (Object-Oriented Programming – OOP) ve kod yapısıdır. Karmaşık eklentiler için, nesne yönelimli programlamayı kullanarak işlevleri kapsüllemek daha iyi bir seçenektir. Bir ana sınıf oluşturabilir ve bu sınıfın metotlarında işlemleri ve fonksiyonları düzenleyebilirsiniz; bu sayede fonksiyon adı çakışmalarını önleyebilir ve kodunuzun düzenini koruyabilirsiniz.

class My_Advanced_Plugin {
    public function __construct() {
        add_action( 'init', array( $this, 'register_custom_post_type' ) );
        add_filter( 'the_content', array( $this, 'enhance_content' ) );
    }
    public function register_custom_post_type() {
        // 注册自定义文章类型的代码
    }
    public function enhance_content( $content ) {
        // 处理内容的代码
        return $content;
    }
}
// 初始化插件类
new My_Advanced_Plugin();

Bir diğer nokta ise yönetim arayüzünün oluşturulmasıdır. WordPress’in Settings API’sini kullanarak, doğrudan formlar oluşturmak yerine stabil ve güvenilir bir arka plan seçenekleri sayfası oluşturulabilir. Bu, ilgili özelliklerin kullanıcı arayüzünde daha düzenli ve kullanışlı bir şekilde sunulmasını sağlar. register_setting()add_settings_section()add_settings_field() Bu tür fonksiyonlar, güvenlik doğrulamasını (Nonce) ve veri depolamayı otomatik olarak gerçekleştirebilir.

Son olarak uluslararasılaştırma (internationalization) geliyor. Eklentinin dünya genelindeki kullanıcılar tarafından kullanılabilmesi için, kullanıcılara yönelik tüm metinlerin çeviri fonksiyonları ile sarılması gerekmektedir. () Eko çıktısını yapmak için kullanın. () Geri dönüş yapmak için kullanılır. _x() İlk olarak, metni bağlamıyla birlikte çevirin. Daha sonra, bu çeviriyi eklentide kullanın. load_plugin_textdomain() Fonksiyon, dil dosyasını yüklüyor.

Özetle.

WordPress eklenti geliştirme, temel yapıyı anlamaktan başlayarak, adım adım çekirdek mekanizmalara derinlemesine nüfuz edip sonunda ileri düzey uygulamaları öğrenme sürecidir. Basit bir dosya başlığı yorumu yazmaktan, eylem (action) ve filtre (filter) hook’larını kullanarak entegrasyon yapmaya, güvenli, yapılandırılmış ve uluslararası standartlara uygun profesyonel eklentiler oluşturmaya kadar her adım, daha güçlü özelleştirme imkanları sunar. Önemli olan pratik yapmaktır; küçük bir sorunu çözmekle başlayın, kodunuzu sürekli olarak iterasyonlar ve iyileştirmelerle geliştirin ve her zaman WordPress kodlama standartlarına ve en iyi güvenlik uygulamalarına uyun. Deneyim kazandıkça, işlevsel, stabil, güvenilir ve popüler eklentiler oluşturabileceksiniz.

Sıkça Sorulan Sorular.

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

PHP ve HTML/CSS temellerine sahip olmanız gerekmektedir; çünkü eklentiler esas olarak PHP ile yazılmıştır ve ön uç arayüzlerinin oluşturulmasıyla ilgilidir. JavaScript ve MySQL konusunda temel bilgilere sahip olmak da oldukça faydalı olacaktır, özellikle eklentinin dinamik etkileşimlere veya karmaşık veri işlemlerine ihtiyaç duyduğu durumlarda. WordPress’in temel kavramlarına, örneğin makaleler, sayfalar, kategoriler, kullanıcı rolleri gibi konulara aşina olmak ise zorunlu bir ön koşuldur.

WordPress eklenti kodumu 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, sayfada PHP hatalarını, uyarılarını ve bildirimlerini gösterecektir. Aynı zamanda, error_log() Function or WP_DEBUG_LOG Hata bilgilerini bir günlük dosyasına kaydedin. Tarayıcının geliştirici araçları (konsol ve ağ bölümü), JavaScript ve AJAX isteklerini hata ayıklamak için çok önemlidir. Karmaşık mantıklar için Xdebug gibi profesyonel hata ayıklama araçları kullanılabilir.

Geliştirdiğim eklentinin verilerini nasıl güvenli bir şekilde güncelleyebilirim?

Eklentinin kendi verileri için (örneğin ayar seçenekleri), WordPress’in Options API’sini kullanabilirsiniz.add_option, update_optionGüvenli bir şekilde ekleme, silme, değiştirme ve sorgulama işlemleri yapılmalıdır. Büyük miktarda özelleştirilmiş veri için özel veritabanı tabloları oluşturulmalıdır. Eklenti yeni bir sürüm yayınladığında ve veritabanı yapısının güncellenmesi veya verilerin taşınması gerektiğinde, sürüm kontrolü eklentinin etkinleştirildiği sırada yapılmalıdır. Bir sürüm numarasını seçeneklerde saklayabilir ve her etkinleştirme işlemi sırasında gerekli güncelleme fonksiyonlarını kontrol edip çalıştırabilirsiniz.

Eklentimi farklı WordPress temalarıyla uyumlu hale nasıl getirebilirim?

Maksimum uyumluluk sağlamak için, içerik ve özellikleri görüntülemek amacıyla WordPress çekirdeğinin sunduğu standart API’leri ve işlevleri mümkün olduğunca kullanmalısınız; temanın şablon dosyalarına doğrudan müdahale etmekten veya açıklanmamış iç fonksiyonları kullanmaktan kaçınmalısınız. Ön uç stillemesi için, HTML öğelerinize eklentiye özgü bir önek içeren CSS sınıf adları ekleyin ve stil kurallarınızın uygun özgüllüğe sahip olduğundan emin olun, böylece temanın stilleri tarafından örtülmelerini önleyin. Koşullu etiketler (örneğin…) kullanın. is_admin()Arka plan (backend) ve ön plan (frontend) kodlarının yüklenmesi arasında kesin bir ayrım yapılmalıdır.