WordPress eklenti geliştirmeye yeni başlayanlar için bir rehber: ilk işlevsel eklentinizi sıfırdan oluşturma.

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

Uçsuz bucaksız internet dünyasında, WordPress esnekliği ve güçlü ekosistemi sayesinde içerik yönetim sistemleri arasında önemli bir yere sahiptir. WordPress’in temel özelliklerinin büyük bir kısmı, eklentilere (plugins) dayanmaktadır. Geliştiriciler için WordPress eklenti geliştirmeyi öğrenmek, sadece web sitelerinin işlevlerini derinlemesine özelleştirmekle kalmaz; aynı zamanda yaratıcılıklarını da yeniden kullanılabilir ürünlere dönüştürmelerini sağlar. Bu makale, sıfırdan başlayarak size ilk pratik işlevlere sahip WordPress eklentinizi nasıl oluşturacağınızı adım adım gösterecek ve eklenti geliştirmenin gizemini ortadan kaldıracaktır.

WordPress Eklentileri Temelleri ve Hazırlık İşlemleri

İlk satırı kodlamaya başlamadan önce, WordPress eklentilerinin temel kavramlarını ve uygun bir geliştirme ortamı oluşturmayı anlamak çok önemlidir. Bir WordPress eklentisi, esasen bir veya daha fazla PHP dosyasından oluşur ve ayrıca JavaScript, CSS, resimler gibi kaynakları da içerebilir. Yeni özellikler ekleyebilir veya mevcut özellikleri değiştirebilir; ayrıca temalardan bağımsızdır, bu da bir temayı değiştirdiğinizde eklentinin işlevlerinin genellikle etkilenmeyeceği anlamına gelir.

Bir yerel geliştirme ortamına (örneğin Local by Flywheel, XAMPP, MAMP) veya geliştirme amacıyla kullanılan bir test sitesine ihtiyacınız var. Temel araçlar arasında bir kod editörü (VS Code, PhpStorm gibi) ve hata ayıklamak için kullanılan tarayıcı geliştirici araçları bulunmaktadır. WordPress’i iyi anlamanız gerekmektedir.wp-content/pluginsKatalog yapısı ilk adımdır; tüm eklentiler buraya yüklenir.

Tavsiye edilen okuma WordPress eklenti geliştirme yolculuğuna çıkmak, dünya çapında kullanılan bir platform için eklentiler oluşturma becerilerine sahip olduğunuz anlamına gelir.

İlk eklenti dosyanızı oluşturun.

Eklentinin giriş noktası, kendi bağımsız dizininde bulunan bir ana PHP dosyasıdır. Bu dosya, standart bir eklenti başlık yorumu içermelidir. WordPress, arka plan yönetim arayüzünde eklentinizi tanımak ve göstermek için buna bağımlıdı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%).

Eklenti başlık bilgilerinin tanımı

Her eklenti, belirli bir PHP yorum bloğu ile başlamalıdır. Bu yorum bloğu, eklentinin WordPress arka planındaki temel kimliğini tanımlar. Eklenti dizininizde (örneğin…)wp-content/plugins/my-first-pluginİçinde, MyProject adlı bir klasör oluşturun.my-first-plugin.phpDosya.

<?php
/**
 * Plugin Name:       我的第一个功能插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个学习用的WordPress插件,用于在文章末尾添加自定义提示框。
 * Version:           1.0.0
 * Requires at least: 5.6
 * Requires PHP:      7.4
 * Author:            你的名字
 * Author URI:        https://yourwebsite.com
 * 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. “İlk Fonksiyonel Eklentim” adlı eklentiyi eklenti listesinde görmelisiniz; bu noktada onu etkinleştirebilirsiniz. Henüz herhangi bir özelliği olmasa da, ilk adımınızı başarıyla attınız.

Bir eklentinin temel yapısını oluşturma

İşlevler arttıkça, tek bir dosyanın bakımı zorlaşır. İyi bir uygulama, düzenli bir klasör yapısı oluşturmaktır. Örneğin, eklentinin kök dizininde bir klasör oluşturabilirsiniz.includes/Klasör, temel PHP sınıflarını veya fonksiyon dosyalarını içerir.assets/Klasör, JavaScript ve CSS dosyalarını içermektedir.admin/public/Arka plan ve ön uç mantığını ayrı ayrı işleyin. Ana dosya.my-first-plugin.phpBu modülleri yönlendirmek ve yüklemekten sorumludur.

Çekirdek işlevin gerçekleştirilmesi: Hook’lar ve filtreler

WordPress eklenti geliştirmenin temel felsefesi “Kancalar” (Hooks)dır; bu sayede, çekirdek dosyaları değiştirmeye gerek kalmadan belirli zaman noktalarında kendi kodunuzu ekleyebilirsiniz. Kancalar iki türe ayrılır: Eylemler (Actions) ve Filtreler (Filters). Eylemler, belirli bir olay meydana geldiğinde bir fonksiyonu çalıştırmanıza olanak tanır (örneğin, bir makale yayınlandığında veya ön yüz yüklendiğinde); Filtreler ise verileri değiştirmenize olanak tanır (örneğin, makale içeriği veya başlığı).

Tavsiye edilen okuma Sıfırdan Bir: WordPress Eklenti Geliştirme Kapsamlı Rehberi ve Pratik Eğitim Kursu

Makale içeriğini filtreler kullanarak değiştirin.

Hadi, eklentiye ilk somut özelliği ekleyelim: Her makalenin sonuna otomatik olarak özelleştirilmiş bir uyarı kutusu ekleyelim. Bunun için şu yöntemi kullanacağız…the_contentFiltreler.

Öncelikle, ana eklenti dosyasında, başlık yorumlarının hemen altına aşağıdaki fonksiyonu ve kancayı ekleyin:

// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/**
 * 在文章内容末尾添加自定义提示框
 *
 * @param string $content 原始文章内容。
 * @return string 修改后的文章内容。
 */
function mfp_add_notice_box( $content ) {
    // 仅在主循环的单篇文章页面显示
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $notice_box = '<div class="mfp-notice" style="background-color: #f0f8ff; border-left: 4px solid #3498db; padding: 15px; margin: 20px 0; border-radius: 5px;">'$notice_box = '<p><strong>İpucu:</strong> Bu makale, “Benim İlk Fonksiyon Eklentim” tarafından geliştirilerek gösterilmiştir. Umarım bu içeriği beğenirsiniz!</p>'$notice_box = '</div>';
        $content .= $notice_box;
    }
    return $content;
}
add_filter( 'the_content', 'mfp_add_notice_box' );

fonksiyonmfp_add_notice_boxOrijinal içeriği alın.$contentBir parametre olarak, mevcut ortamın tek bir makale sayfası olup olmadığını kontrol edin. Eğer öyleyse, ipuçları içeren bir HTML bloğunu ekleyin ve son olarak değiştirilmiş içeriği geri döndürün.add_filterBu fonksiyon, özel olarak oluşturulan bu fonksiyonu WordPress’e bağlar (yani WordPress’in mevcut fonksiyon yapısına ekler).the_contentFiltre üzerinde.

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

Bir eklentiye ayar menüsü eklemek için aşağıdaki adımları izleyin:

Eklentiyi daha mükemmel hale getirmek için genellikle bir arka plan yapılandırma sayfası sağlamamız gerekmektedir. Burada eylem kancalarını (action hooks) kullanmamız gerekiyor.admin_menuBir menü öğesi ekleyelim.

/**
 * 在WordPress后台添加插件设置菜单
 */
function mfp_add_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的第一个插件',        // 菜单标题
        'manage_options',       // 所需权限
        'my-first-plugin',      // 菜单 Slug
        'mfp_render_settings_page' // 用于输出页面内容的回调函数
    );
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );

/**
 * 渲染设置页面内容
 */
function mfp_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>İlk eklentim için yapılan ayarlar</h1>
        <form action="/tr/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            settings_fields( 'mfp_settings_group' );
            do_settings_sections( 'my-first-plugin' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="tr"/></form>
    </div>
    &lt;?php
}

Bu örnek sayesinde, WordPress arka plan arayüzünü nasıl eylem kancaları (action hooks) kullanarak genişleteceğinizi öğrendiniz. Tam ayar sayfaları genellikle bunun yanı sıra başka araçlar veya yöntemlerin de kullanılmasını gerektirir.register_setting, add_settings_sectionadd_settings_fieldSeçenekleri tanımlamak ve kaydetmek için `wait` gibi fonksiyonlar kullanılır; bu da eklentinin etkileşimli olmasının temelini oluşturur.

Eklentiye stil ve betik ekleyin.

Profesyonel bir eklentinin sadece iyi işlevlere sahip olması değil, aynı zamanda estetik açıdan da uygun görünmesi gerekir. CSS ve JavaScript dosyalarını doğru bir şekilde eklememiz gerekiyor; böylece temayla veya diğer eklentilerle çakışmalar olmaz.

Tavsiye edilen okuma Nasıl Yüksek Kaliteli WordPress Eklentileri Geliştirilir: Başlangıçtan Uzmanlığa Kadar Rehber

Ön uç kaynaklarını güvenli bir şekilde kaydetmek ve yüklemek

WordPress sunmaktadır.wp_enqueue_stylewp_enqueue_scriptBir fonksiyon kullanarak kaynakları güvenli bir şekilde ekleyebiliriz. Kullanmamız gereken şey bu fonksiyondur.wp_enqueue_scriptsEylem kancaları, bunları yüklemek için kullanılır.

/**
 * 注册并加载插件的前端样式和脚本
 */
function mfp_enqueue_public_assets() {
    // 获取插件URL
    $plugin_url = plugin_dir_url( __FILE__ );

// 注册并排队样式表
    wp_enqueue_style(
        'mfp-public-style',
        $plugin_url . 'assets/css/mfp-public.css',
        array(),
        '1.0.0'
    );

// 注册并排队JavaScript文件(示例)
    wp_enqueue_script(
        'mfp-public-script',
        $plugin_url . 'assets/js/mfp-public.js',
        array('jquery'), // 依赖jQuery
        '1.0.0',
        true            // 在页脚加载
    );
}
add_action( 'wp_enqueue_scripts', 'mfp_enqueue_public_assets' );

Öncelikle, eklentiler dizini altında bir klasör oluşturmanız gerekiyor.assets/css/mfp-public.cssDosyayı aldıktan sonra, daha önce oluşturduğumuz uyarı kutusunu güzelleştirmek için stil ekleyebiliriz.

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.
/* assets/css/mfp-public.css */
.mfp-notice {
    background-color: #f0f8ff;
    border-left: 4px solid #3498db;
    padding: 15px;
    margin: 20px 0;
    border-radius: 5px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, sans-serif;
}
.mfp-notice p {
    margin: 0;
    color: #2c3e50;
}

Arka plan kaynaklarını yükle

Arka plan kaynaklarının kayıt yöntemi benzerdir; ancak kullanılan “hook” (düğüm/eklem) farklıdır.admin_enqueue_scriptsMevcut sayfanın sizin eklentinizin ayarlar sayfası olup olmadığını belirlemek için bir kontrol yapmanız gerekiyor (örneğin, belirli bir URL’ye bakarak veya sayfadaki içeriği analiz ederek).get_current_screen()Bu fonksiyonlar, kaynakları seçici bir şekilde yüklemek ve gereksiz performans maliyetlerinden kaçınmak için kullanılır.

Özetle.

Basit bir eklenti başlık bilgisini tanımlamaktan başlayarak, WordPress’in güçlü kancalama sistemini (eylemler ve filtreler) kullanarak web sitesi içeriğini ve yapısını dinamik olarak değiştirmeye, ardından da stil ve betik kaynaklarını profesyonel bir şekilde yönetmeye kadar, ilk işlevsel eklentinizi oluşturmanın tam sürecini tamamladınız. Önemli olan, WordPress geliştirme kurallarını anlamak ve bunlara uymaktır: Kancaları kullanmak yerine çekirdeği doğrudan değiştirmemek, kaynakları doğru bir şekilde kaydetmek ve sıralamak, ve net bir dosya yapısı oluşturmaktır. Bu, sadece eklenti geliştirme dünyasının başlangıcıdır. Bundan sonra, kısa kodlar (Shortcode’lar) oluşturmayı, özel makale türleri (Custom Post Types – CPT’ler) geliştirmeyi, veritabanı ile etkileşim kurmayı, REST API uç noktalarını kullanmayı ve eklentilerin uluslararasılaştırılmasını gibi daha ileri seviye konuları keşfedebilir ve eklentinizi daha da güçlü ve kullanıcı dostu hale getirebilirsiniz.

Sıkça Sorulan Sorular.

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

Temel PHP programlama becerilerine sahip olmanız gerekiyor; bu, fonksiyonları, koşullu ifadeleri, döngüleri ve dizi işlemlerini anlamayı içerir. Ayrıca, HTML, CSS ve bir miktar JavaScript hakkında bilgi sahibi olmanız faydalı olacaktır, özellikle ön uç arayüzlerini değiştirmeniz gerektiğinde. En önemlisi, WordPress’in temel işleyiş prensiplerini anlamanız gerekiyor; örneğin şablon hiyerarşisi, ana döngü ve veritabanının temel yapısı gibi konuları bilmelisiniz.

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

WordPress’ü etkinleştirmek için…WP_DEBUG“Mod” (mod), hata ayıklamanın (debugging) ilk adımıdır. Bu mod, sitenizin kök dizininin (root directory) altında bulunur.wp-config.phpDosyada, ayarlar yapılmıştır.define( 'WP_DEBUG', true );Bu, PHP hatalarını ve uyarılarını ekranda gösterecek ve aynı zamanda bunları kaydedecektir.wp-content/debug.logDosyada bulunuyor. Aynı zamanda, tarayıcı geliştirici araçlarının “Konsol” (Console) ve “Ağ” (Network) panellerini kullanmak, JavaScript ve Ajax isteklerinin hata ayıklanmasına yardımcı olur. Karmaşık mantıklar için de bu araçlar kullanılabilir.error_log()Fonksiyonlar veya özel hata ayıklama eklentileri, değişken bilgilerini günlüğe (log) yazdırır.

Eklentime nasıl yapılandırılabilir seçenekler ekleyebilirim?

Eklentilere ayar seçenekleri eklemenin standart yolu, WordPress’in ayar API’sini kullanmaktır. Bu işlem bir dizi fonksiyonu içerir:register_setting()Bir ayar seçenek grubunu kaydetmek ve bunu veritabanına güvenli bir şekilde saklamak için kullanılır;add_settings_section()Ayarlar sayfanıza bir bölüm ekleyin;add_settings_field()Blok içine belirli form alanları (örneğin giriş kutuları, açılır menüler) ekleyin. Ayar sayfanızın geri çağırma fonksiyonlarında bunları içermelisiniz.settings_fields()do_settings_sections()Formun doğru bir şekilde oluşturulması ve doğrulanması için gerekli çağrılar yapılır.

Eklentimin diğer eklentilerle veya temalarla çakışmamasını nasıl sağlayabilirim?

En iyi uygulamalara uymak, çakışmaları önlemenin anahtarıdır. Tüm fonksiyonlarınıza, sınıflarınıza, sabitlerinize, eylem/filtre adlarınıza ve HTML’nin CSS sınıflarına benzersiz bir önek veya ad alanı ekleyin. Örneğin, şöyle bir şey kullanabilirsiniz:myplugin_function_nameBöyle bir fonksiyon adı… Sadece bu da değil, aynı zamanda…function_nameKullanmakwp_enqueue_stylewp_enqueue_scriptKaynakları yükleyin ve stil ile betiklerin referanslarının (handle’lerinin) benzersiz olduğundan emin olun. Mümkün olduğunca, değişkenleri ve fonksiyonları daha iyi ayırmak için kodunuzu sınıflar içinde paketleyin.

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

Eğer bir eklentiyi resmi WordPress eklenti kataloğuna göndermek istiyorsanız, eklentinin WordPress’in kodlama standartlarına ve GPL lisansına tamamen uygun olduğundan emin olmanız gerekir. Bir WordPress.org hesabı oluşturmanız ve eklentiyi inceleme için göndermeniz gerekmektedir. İnceleme ekibi, kodun güvenliğini, işlevselliğini ve dokümantasyonunu kontrol edecektir. Göndermeden önce, lütfen resmi eklenti geliştirme kılavuzlarını ve gönderim rehberlerini dikkatlice okuyun. Ticari eklentiler için, kendi web sitenizde veya üçüncü parti pazarlarda dağıtım yapmayı seçebilirsiniz.