WordPress Eklenti Geliştirme: Başlangıçtan Uzmanlığa – Yüksek Özelleştirilebilir İşlev Modülleri Oluşturmak İçin Kapsamlı Bir Rehber

3 dakika okuma.
2026-03-12
2026-06-03
2,241
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 Kurulması ve Klasör Yapısı

WordPress eklenti geliştirmeye başlamanın ilk adımı, standartlara uygun ve verimli bir yerel geliştirme ortamı oluşturmaktır. Bu, sadece geliştirme sürecinizin sorunsuz ilerlemesini sağlamakla kalmaz; aynı zamanda gelecekte eklentilerin dağıtılması, hata ayıklanması ve bakımı açısından da son derece önemlidir. PHP, MySQL ve bir web sunucusu (örneğin Apache veya Nginx) içeren bir ortama ihtiyacınız vardır. Local by Flywheel, XAMPP veya MAMP gibi entegre yazılım paketlerini kullanmanız şiddetle tavsiye edilir; bu paketler gerekli tüm bileşenleri tek tıklamayla kurar ve böylece kod yazmaya odaklanmanıza olanak tanır.

Eklenti oluştururken, standart klasör yapısına uymak iyi bir başlangıçtır. Her eklenti en az bir ana PHP dosyası içermelidir; bu dosyanın adı genellikle eklentinin ana klasör adıyla aynıdır. Bu dosya, tüm eklentinin “giriş noktasıdır” ve eklenti bilgilerini kaydeder ve temel işlevleri başlatır. Bu temel dosyaya “eklenti ana dosyası” diyoruz.

Bu eklentinin ana dosyası, belirli başlık yorumlarını içermelidir. WordPress, bu yorumları analiz ederek eklenti bilgilerini tanır. Önemli meta veriler arasında eklentinin adı, açıklaması, sürümü, yazarı ve uygun olan en düşük WordPress sürüm gereksinimleri bulunur.

Tavsiye edilen okuma WordPress Eklenti Geliştirme için Eksiksiz Kılavuz: Sıfırdan Raflarda Uygulamaya

Aşağıda temel bir katalog yapısı örneği verilmiştir:

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%).
your-awesome-plugin/
├── your-awesome-plugin.php (主文件)
├── uninstall.php (卸载脚本)
├── includes/
│   ├── class-core.php
│   └── functions.php
├── admin/
│   ├── css/
│   ├── js/
│   └── admin-page.php
├── public/
│   ├── css/
│   └── js/
└── assets/
    └── icon-128x128.png

Eklentiyi etkinleştirmek için, eklentinin ana dosyasının baş kısmına belirli bir yorum eklemeniz gerekiyor. Örneğin, en basit eklenti etkinleştirme betiği şöyle olabilir: your-awesome-plugin.phpİçeriği şu şekilde başlayabilir:

<?php
/**
 * Plugin Name:      我的超强功能模块
 * Plugin URI:       你的插件官网地址
 * Description:      这是一个用于演示WordPress插件开发基础结构的功能模块。
 * Version:          1.0.0
 * Author:           你的名字
 * License:          GPL v2 or later
 * Text Domain:      your-awesome-plugin
 */

Bu kodu içeren dosyayı WordPress kurulum dizininin altına koyun. /wp-content/plugins/ Yol göstericileri takip ederek, arka planda bulunan “Eklentiler” sayfasına girdiğinizde ilk eklentinizi görebilir ve etkinleştirebilirsiniz.

Temel geliştirme kavramlarını öğrenin: Hook’lar ve kısa kodlar

Temel yapıyı anladıktan sonra, bir sonraki adım WordPress’in esnekliğini sağlayan temel kavramları derinlemesine öğrenmektir: Eylem Hook’ları (Action Hooks) ve Filtre Hook’ları (Filter Hooks), birlikte “Hook’lar” olarak adlandırılır. Bunlar, eklentilerin WordPress çekirdeği veya diğer eklentilerle etkileşim kurmasını sağlayan araçlardır. Eylem Hook’ları, kodunuzu belirli bir zamanda “çalıştırmanıza” olanak tanır; diğer yandan Filtre Hook’ları, kullanılmak üzere olan verileri “değiştirmenize” imkan verir.

Action Hook Kullanımı add_action() Bir fonksiyon kullanarak belirli işlemleri gerçekleştirebilirsiniz. Örneğin, bir makale yayınlandığında özel bir fonksiyonu çalıştırmak istiyorsanız, WordPress’in sunduğu özelliklerden yararlanabilirsiniz. publish_post Bu eylem hook’u.

Tavsiye edilen okuma WordPress Eklenti Geliştirme Kılavuzu: Sıfırdan Başlayarak Profesyonel Eklentiler Oluşturma

function my_custom_function_on_publish($post_id) {
    // 当文章发布时,执行这里的代码
    // 例如,可以发送一封邮件通知
}
add_action('publish_post', 'my_custom_function_on_publish');

Filtre hook’larının kullanımı add_filter() Fonksiyonlar. En yaygın örneklerden biri, bir makalenin içeriğinin son kısmını değiştirmektir. WordPress bunu sağlar. the_content Filtreler, nihai çıktıyı değiştirmemize olanak tanır.

function append_custom_text_to_content($content) {
    if (is_single()) { // 仅在单篇文章页面生效
        $custom_text = '<p><strong>Okuduğunuz için teşekkür ederiz!</strong> Bu metin, benim eklentim tarafından işlendi.</p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter('the_content', 'append_custom_text_to_content');

Kancaların yanı sıra, kısa kodlar da başka bir güçlü özelliktir. Kullanıcılara, makale veya sayfa düzenleyicilerinde `%s`, `%1$s`, `{{var}}` gibi basit etiketler kullanma imkanı sunar. [show_recent_posts]Karmaşık içerikleri veya özellikleri dinamik olarak eklemek için, kısa kodlar (short codes) kullanmak gereklidir. Kısa kodlar oluşturmak için belirli yazım kurallarına ve tekniklere uyulmalıdır. add_shortcode() İşlev.

function recent_posts_shortcode_handler($atts) {
    // 配置短码的默认属性
    $attributes = shortcode_atts(array(
        'count' => '5',
    ), $atts);

// 根据属性查询文章逻辑
    // ...
    return $output; // 返回要显示的HTML内容
}
add_shortcode('show_recent_posts', 'recent_posts_shortcode_handler');

Eklenti arka plan yönetim arayüzünü oluşturma

İyi bir şekilde geliştirilmiş bir eklenti, kullanıcılara genellikle ayar seçenekleri sunmalıdır; bu da WordPress arayüzünün arkasında bir yönetim sayfası oluşturulmasını gerektirir. WordPress, bu süreci kolaylaştırmak için zengin bir API sunar. En temel yönetim sayfası, aşağıdaki adımlar takip edilerek oluşturulabilir: add_menu_page()add_submenu_page() Bir fonksiyon eklemek için…

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

Öncelikle, kullanmanız gereken şey… admin_menu Menünüzü ve sayfalarınızı kaydetmek için eylem kancaları (action hooks) kullanın. Örneğin, bir üst düzey menü öğesi ve bir ayar sayfası oluşturun.

function my_plugin_add_admin_menu() {
    // 添加顶级菜单
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限(管理员)
        'my-plugin-settings', // 菜单slug
        'my_plugin_settings_page_callback', // 用于输出页面内容的回调函数
        'dashicons-admin-generic', // 图标
        80 // 菜单位置
    );

// 添加子菜单(可选项)
    add_submenu_page(
        'my-plugin-settings', // 父级菜单slug
        '关于', // 页面标题
        '关于', // 子菜单标题
        'manage_options',
        'my-plugin-about',
        'my_plugin_about_page_callback'
    );
}
add_action('admin_menu', 'my_plugin_add_admin_menu');

Daha sonra, bir geri çağırma (callback) fonksiyonu tanımlamanız gerekiyor. my_plugin_settings_page_callback Bu, ayar sayfasının HTML formunu renderlemek için kullanılır. Kullanıcı girdilerini güvenli bir şekilde kaydetmek ve doğrulamak için WordPress’in ayar API’sini kullanmak gereklidir; bu API üç temel fonksiyon içerir:register_setting()add_settings_section()add_settings_field()

function my_plugin_settings_init() {
    register_setting('my_plugin_settings_group', 'my_plugin_options');

add_settings_section(
        'my_plugin_main_section',
        '主要设置',
        null,
        'my-plugin-settings'
    );

add_settings_field(
        'api_key',
        'API密钥',
        'my_plugin_api_key_field_callback',
        'my-plugin-settings',
        'my_plugin_main_section'
    );
}
add_action('admin_init', 'my_plugin_settings_init');

Böylece, standartlaştırılmış ve güvenli bir arka plan ayarlama arayüzü WordPress yönetim paneline entegre edilmiş olur ve kullanıcılar eklentinizi kolayca yapılandırabilirler.

Tavsiye edilen okuma WordPress eklenti geliştirmeye başlama kılavuzu: İlk işlevsel uzantınızı sıfırdan oluşturun.

Eklenti Güvenliği, Optimizasyonu ve Dağıtımı

Geliştirme sürecinin sonuna yaklaşılırken, güvenlik ve performans konuları son derece önemlidir. Öncelikle, tüm kullanıcı girdilerinin doğrulanıp temizlendiğinden emin olmalısınız. Frontend’ten gelen verilere asla güvenmeyin. WordPress, bu amaç için güçlü fonksiyonlar sunar. sanitize_text_field()esc_html()wp_kses()prepare()(Veritabanı sorguları için kullanılır) Bu amacı gerçekleştirmeye yardımcı olmak için.

Örneğin, form gönderimleri işlenirken:

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.
$user_input = isset($_POST['user_data']) ? sanitize_text_field($_POST['user_data']) : '';
$safe_output = esc_html($user_input);

Tüm SQL sorguları için mutlaka kullanılmalıdır. $wpdb Sınıflar ve bunların… prepare() SQL enjeksiyonunu önlemek için yöntemler.

global $wpdb;
$user_id = 1;
$query = $wpdb->prepare(
    "SELECT * FROM {$wpdb->prefix}my_table WHERE user_id = %d",
    $user_id
);
$results = $wpdb->get_results($query);

Eklenti optimizasyonu açısından, betiklerin ve stil şemalarının yüklenmesini uygun bir şekilde yönetmek önemlidir. wp_enqueue_script()wp_enqueue_style() Fonksiyonları yalnızca ihtiyaç duyulan sayfalarda yükleyin. Aynı zamanda, her sayfa yüklendiğinde ağır işlemlerin gerçekleşmesini önlemek için önbellek ve veritabanı sorgularını optimize etmeyi düşünün.

Son olarak, eserini tüm dünyayla paylaşmaya hazırlanıyorsun. Bunun için ayrıntılı bir... readme.txt Dosya, WordPress’in resmi standartlarına uygun bir biçimde oluşturulmalıdır ve eklentinin açıklamasını, kurulum adımlarını, sık sorulan soruları (FAQ’ları), güncelleme kayıtlarını vb. içermelidir. Bu dosya, eklentinin WordPress’in resmi kataloğuna gönderilmesi için gereklidir. “WordPress Readme Generator” gibi araçları kullanarak dosyanın oluşturulmasına yardımcı olabilirsiniz. Aynı zamanda, kodunuzu yönetmek için bir sürüm kontrol sistemi (örneğin Git) kullanmayı ve kullanıcılara net bir yükseltme yolunu sunmayı düşünebilirsiniz.

Özetle.

Bir WordPress eklenti geliştirme yaşam döngüsü, ortamın kurulması ve basit bir etkinleştirme notunun yazılmasıyla başlar; ardından hook’ların (düğümlerin) ve kısa kodların temel mekanizmaları derinlemesine anlaşılır. Daha sonra profesyonel bir yönetim arayüzü oluşturulur ve süreç, güvenlik, optimizasyon ve dağıtım ile sona erer. Her bir adım vazgeçilmezdir ve bu temel bilgileri sağlam bir şekilde öğrenmek, herhangi bir karmaşık, yüksek özelleştirilebilir işlev modülü oluşturmanız için zemin hazırlar. Pratik, öğrenmenin anahtarıdır; bu nedenle, belirgin ihtiyaçlara sahip basit bir eklentiyle başlamanız ve işlevleri kademeli olarak geliştirerek ilerlemeniz önerilir. Sonunda, güçlü, güvenli ve popüler bir WordPress eklentisi oluşturmayı rahatlıkla başaracaksınız.

Sıkça Sorulan Sorular.

WordPress eklentisi geliştirmek için hangi programlama temellerine ihtiyaç vardır?

PHP diliyle aşina olmanız gerekiyor; çünkü bu, WordPress’in temelini oluşturan bir dildir. Aynı zamanda, HTML, CSS ve JavaScript konularında temel bilgilere sahip olmanız da çok önemlidir; çünkü bunlar ön uç arayüzlerin ve etkileşimlerin oluşturulmasından sorumludur.

MySQL veritabanına dair temel bilgilere sahip olmak, özellikle de basit CRUD (Create, Read, Update, Delete) işlemlerini yapabilmek, eklenti verilerini yönetirken oldukça faydalıdır. Ayrıca, WordPress’in temel yapısını ve çalışma sürecini (tema şablonları, döngü kavramları gibi) anlamak, geliştirme sürecinizi daha sorunsuz hale getirecektir.

Kendi geliştirdiğiniz WordPress eklentisini nasıl hata ayıklarsınız?

En etkili yöntem, WordPress’in hata ayıklama (debugging) modunu etkinleştirmektir. Bu işlem, web sitesinin kök dizininde (root directory) yapılır. wp-config.php Dosyada, WP_DEBUG Sabit, olarak ayarlandı. trueBu şekilde, PHP hataları, uyarıları ve bildirimleri doğrudan sayfada görüntülenecektir.

Aynı zamanda, kullanın. error_log() Fonksiyon, hata ayıklama bilgilerini sunucunun hata günlüğüne yazar veya tarayıcı geliştirici araçlarının Console ve Network panellerini kullanarak ön uç JavaScript ve AJAX isteklerini analiz eder. Karmaşık mantıklar için Xdebug gibi profesyonel hata ayıklama araçlarını kullanarak kesme noktalarıyla ayıklama yapmayı deneyebilirsiniz.

Eklentiler yeni veritabanı tabloları ekleyebilir mi? Nasıl yapılır?

Evet, eklentiler ihtiyaca göre özel veritabanı tabloları oluşturabilir. En iyi uygulama, tablo oluşturma işleminin eklenti etkinleştirildiğinde gerçekleştirilmesidir. Bunun için, tablo oluşturmak için gerekli SQL kodunu bir fonksiyon içine yazmanız ve bu fonksiyonu uygun yerlerde kullanmanız gerekir. register_activation_hook() Bunu monte etmek için bir fonksiyon kullanılır.

Tablo oluştururken, lütfen mutlaka…$wpdbÖnekler, tablo adlarının benzersizliğini sağlamak için kullanılır. dbDelta() Bu fonksiyon, CREATE TABLE komutunu gerçekleştirmek için kullanılır; çünkü bu fonksiyon tabloların oluşturulması ve güncellenmesi işlemlerini akıllıca yönetebilir. Eklentinin kaldırılma betiğinde, bu tablonun silinmesi için bir seçenek de sağlanmayı unutmayın.

Eklentilerin çok dilli uluslararasılaştırılmasını nasıl ele alırız?

WordPress, uluslararasılaştırma (internationalization) işlemlerini gerçekleştirmek için GNU gettext teknoloji çerçevesini kullanır. Öncelikle, kod içinde çevrilmesi gereken tüm metinler belirli bir format kullanılarak işaretlenir. __()_e() Bu çeviri işlevlerini bir araya getirerek bir paket oluşturun ve eklentiniz için benzersiz bir “metin alanı” ayarlayın.

Eklentinin ana dosyasında, şu şekilde yapabilirsiniz: load_plugin_textdomain() Bir fonksiyon, çeviri dosyalarını yüklemek için kullanılır. Daha sonra, Poedit gibi araçlar kullanarak kaynak koddan tüm çevrilebilir metinleri çıkarabilir ve bunları kullanabilirsiniz. .pot Şablon dosyası; daha sonra bu şablon temel alınarak farklı diller için yeni dosyalar oluşturulur. .po Ve derlenen .mo Dosya: Dil dosyalarını eklenti dizininin belirtilen dil klasörüne koymanız yeterlidir; bu işlem dil ayarlarının etkinleşmesini sağlayacaktır.