WordPress Eklenti Geliştirme Becerilerini Kazanın: Sıfırdan Başlayarak İlk Özel Eklentinizi Oluşturun

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

Neden WordPress Eklenti Geliştirmeyi Seçmelisiniz?

Dünyanın en popüler içerik yönetim sistemi olan WordPress, gücünün ve genişletilebilirliğinin çoğunu eklentilerden alır. Özel eklentiler geliştirerek, tema dosyalarını değiştirmeden belirli iş ihtiyaçlarını karşılamak için çekirdek platforma benzersiz özellikler ekleyebilirsiniz. Bu, tema güncellendiğinde işlevsel kodunuzun kaybolmamasını sağlar ve ayrıca işlevselliği modüler ve farklı web sitelerinde yeniden kullanımı kolay hale getirir.

Eklenti geliştirmeyi öğrenmek yalnızca başkalarının kullanabileceği ürünler oluşturmanızı sağlamakla kalmaz, aynı zamanda kanca sistemi, veritabanı etkileşimleri ve en iyi güvenlik uygulamaları dahil olmak üzere WordPress'in nasıl çalıştığını daha iyi anlamanızı sağlar. Bu, sıradan kullanıcıdan gelişmiş geliştiriciye geçişte kritik bir adımdır.

İlk eklentinizi oluşturun

Kod yazmaya başlamadan önce, yerel olarak ya da bir test sunucusunda standart bir WordPress ortamı kurmanız gerekir. Bu, tüm geliştirme çalışmalarının temelini oluşturur.

Tavsiye edilen okuma Sıfırdan WordPress Eklentisi Geliştirmeyi Öğrenmek: İlk Özel Özelliğinizi Oluşturmak

Bir eklenti ana dosyası oluşturun.

Her WordPress eklentisi, genellikle eklenti adından sonra adlandırılan bir ana dosyaya sahip olmalıdır. Adında bir dosya oluşturacağızmy-first-plugineklentinin. İlk olarak, WordPress kurulum dizininizde/wp-content/plugins/klasörünü açın, adında yeni bir klasör oluşturunmy-first-plugin

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

Bu klasörün içinde, şu adda bir klasör oluşturunmy-first-plugin.phpEklentinin PHP dosyası. Bu dosya eklentinin giriş noktasıdır. Dosyayı açın ve aşağıdaki eklenti başlığı yorumlarını ekleyin, bu bilgiler WordPress'in eklentinizi tanıması için çok önemlidir.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个学习WordPress插件开发的示例插件,用于在文章底部添加自定义内容。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://yourwebsite.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

İlk basit fonksiyonun uygulanması

Klasik bir acemi özelliği, web sitenizdeki tüm yazı içeriğinin altına otomatik olarak bir metin paragrafı eklemektir. WordPress'i kullanacağız the_content Bunu başarmak için filtre kancaları. Ana dosyanızdaki başlık yorumlarının altına aşağıdaki işlevi ekleyin:

// Dosyaya doğrudan erişimi engelle
if ( ! defined( 'ABSPATH' ) {
    exit; }
}

/**
 * Yazı içeriğinin sonuna özel metin ekleyin
 *
 * @param string $content Orijinal makale içeriği.
 * @return string Değiştirilen makale içeriği.
 */
function mfp_add_footer_text( $content ) {
    // Ana döngü olup olmadığını ve tek bir makale sayfasında olup olmadığını belirleyin
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = '<div class="mfp-footer-note"><p><em>Okuduğunuz için teşekkürler! Bu makale size My First Plugin tarafından sunulmuştur.</em></p></div>'.
        return $content . $custom_text.
    }
    return $content.
}
// Fonksiyonu `the_content` filtresine bağlayın
add_filter( 'the_content', 'mfp_add_footer_text' );

Bu kod, bir fonksiyon tanımlamaktadır. mfp_add_footer_textMakalenin içeriğini alır $content bir argüman olarak. İşlev dahili olarak önce geçerli ortamın tek bir makale sayfasında, ana döngüde ve ana sorguda olup olmadığını kontrol eder; bunun amacı özetlere, widget'lara veya diğer yerlere de metin eklemekten kaçınmaktır. Koşul karşılanırsa, özel bir HTML metni parçası oluşturur ve orijinal içerikten sonra ekler.

Derin Eklenti Mimarisi ve Güvenliği

Eklentilerin artan işlevselliği ile iyi bir kod organizasyonu hayati önem taşımaktadır. Aynı zamanda, güvenlik tüm WordPress geliştirmelerinin can damarıdır.

Tavsiye edilen okuma WordPress eklenti geliştirmede ustalaşma: sıfırdan bire ilk eklenti modülünüzü oluşturma

Nesne Yönelimli Programlama Kullanarak Kodu Yeniden Düzenleme

Kodun sürdürülebilirliğini ve genişletilebilirliğini artırmak için, eklentinin nesne yönelimli (OOP) bir şekilde düzenlenmesi önerilir. Yukarıdaki işlevselliği bir sınıfa dönüştürelim.

// Dosyaya doğrudan erişimi engelle
if ( ! defined( 'ABSPATH' ) {
    exit; }
}

class My_First_Plugin {
    /**
     * Eklenti kancasını başlatmak için kurucu.
     */
    public function __construct() {
        // Yöntemi kurucu yöntemdeki kancaya bağlayın
        add_action( 'init', array( $this, 'load_textdomain' ) );;
        add_filter( 'the_content', array( $this, 'add_footer_to_content' ) );;
        add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ) );
    }

/**
     * Eklentinin metin çeviri alanını yükleyin.
     */
    public function load_textdomain() {
        load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
    }

/**
     * Yazı içeriğinin sonuna özel metin ekleyin.
     */
    public function add_footer_to_content( $content ) {
        if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
            $custom_text = '<div class="mfp-footer-note"><p><em>' . esc_html__( 'Okuduğunuz için teşekkürler! Bu makale size My First Plugin tarafından sunulmuştur.“ , ”my-first-plugin' ) . '</em></p></div>'.
            return $content . $custom_text.
        }
        return $content.
    }

/**
     * Eklentiye stiller ekleyin.
     */
    public function enqueue_styles() {
        wp_enqueue_style( 'mfp-style', plugins_url( 'assets/css/style.css', __FILE__ ), array(), '1.0.0' );
    }
}

// Eklenti sınıfını Instantiate edin
$my_first_plugin_instance = new My_First_Plugin();

Lütfen aşağıdaki seçeneklerde bir dizi farklı seçeneğimiz olduğunu unutmayın add_footer_to_content yönteminin kullanıldığı esc_html__() fonksiyonunu metni sarmak için kullanır. Bu bir çeviri işlevidir ve aynı zamanda çıktıyı uygun şekilde kaçar, bu da güvenli bir şekilde metin çıktısı almak için en iyi uygulamadır. Ayrıca stil sayfalarını yüklemek için yöntemler ekledik ve eklenti uluslararasılaştırmasına (i18n) hazırlık olarak metin alanı desteği sunduk.

Veri doğrulama ve kaçış işlemlerini anlama ve uygulama

Kullanıcı girdisine veya herhangi bir harici veriye asla güvenmeyin. Veriler alınırken, işlenirken ve çıktısı alınırken doğrulanmalı, temizlenmeli ve kaçmalıdır. Örneğin, bir giriş formu içeren bir yönetici sayfası oluşturuyorsanız, WordPress'in sağladığı nonce, izin denetimi ve veri doğrulama işlevlerini kullandığınızdan emin olun.

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

Bu eklentinin işlevselliği nispeten basittir, ancak HTML çıktısını esc_html__() Kaçış gerçekleştirir. Eklentinin kullanıcı tarafından gönderilen verileri işlemesi gerekiyorsa, örneğin bir form aracılığıyla, o zaman sanitize_text_field(), wp_kses_post() ve diğer işlevleri temizlemek ve kullanmak için wp_verify_nonce() talebin meşruiyetini doğrulamak için.

Eklenti Yönetim Sayfası Oluşturma

Tam teşekküllü bir eklenti genellikle bir arka uç yapılandırma sayfası gerektirir. WordPress ayar API'sini kullanarak basit, standart bir yönetici sayfasının nasıl oluşturulacağını öğreneceğiz.

Eklenti ayarları menüsü ekle

Öncelikle WordPress arka ucundaki “Ayarlar” menüsünün altına bir alt menü sayfası eklememiz gerekiyor. Sınıfınıza yeni bir metot ekleyin ve bunu kurucuda add_action('admin_menu', ...) Kanca onu çağırıyor.

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

/**
 * 注册插件管理页面。
 */
public function register_admin_menu() {
    add_options_page(
        __( '我的插件设置', 'my-first-plugin' ), // 页面标题
        __( '我的第一个插件', 'my-first-plugin' ), // 菜单标题
        'manage_options', // 所需权限
        'mfp-settings', // 菜单slug
        array( $this, 'display_settings_page' ) // 显示页面的回调函数
    );
}

Ardından, yapıcıya ekleyin:add_action( 'admin_menu', array( $this, 'register_admin_menu' ) );

Ayar sayfası ve alanlarını oluşturma

Sonraki adımda, bir tanım yapmamız gerekir. display_settings_page ayarlar sayfasının HTML içeriğini oluşturmak ve bir ayar alanını kaydetmek için Ayarlar API'sini kullanmak için yöntem.

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.
/**
 * Eklenti ayarları sayfasını görüntüler.
 */
public function display_settings_page() {
    ? &gt;
    <div class="wrap">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <form action="/tr/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段、非ce等安全字段
            settings_fields( 'mfp_settings_group' );
            do_settings_sections( 'mfp-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="tr"/></form>
    </div>
    <?php
}

/**
 * 初始化插件设置。
 */
public function initialize_settings() {
    // 注册一个设置
    register_setting(
        'mfp_settings_group', // 设置组名
        'mfp_footer_text', // 选项名
        array(
            'type' => 'string',
            'sanitize_callback' =&gt; 'sanitize_text_field', // cleanup callback fonksiyonu
            'default' =&gt; __( 'Okuduğunuz için teşekkürler! Bu makale size My First Plugin tarafından sunulmuştur.“ , ”my-first-plugin' ), )
        )
    );

// Bir ayarlar bölümü ekleyin
    add_settings_section(
        'mfp_main_section',
        __( 'main_settings', 'my-first-plugin' ),
        null, // isteğe bağlı bölüm açıklaması geri arama işlevi
        'mfp-settings'
    ).

// Bölgeye alanlar ekleyin
    add_settings_field(
        'mfp_footer_field',
        __( 'footer text', 'my-first-plugin' ),
        array( $this, 'render_footer_field' ), // Alanları oluşturmak için geri arama işlevi
        'mfp-settings', 'mfp_main_field'
        'mfp_main_section',
        array( 'label_for' =&gt; 'mfp_footer_text' )
    );
}

Tanımlamanız gerekenler render_footer_field metodunu kullanarak gerçek giriş kutusunu oluşturur ve önceki add_footer_to_content veritabanı seçeneğinden yapmak için yöntem get_option('mfp_footer_text') sabit kodlanmış bir dize kullanmak yerine metni okumak için kurucuda. Son olarak, yapıcıya ekleyin:add_action( 'admin_init', array( $this, 'initialize_settings' ) );

Özetle.

Bu makalenin yolculuğu boyunca, sıfırdan tamamen işlevsel bir WordPress eklentisi oluşturdunuz. Bir eklentinin temel yapısını oluşturmayı, WordPress işlevselliğini genişletmek için eylem ve filtre kancalarını kullanmayı, kaliteyi artırmak için kodunuzu düzenlemek için nesne yönelimli bir yaklaşım benimsemeyi, verileri doğrulamak ve kaçmak için en iyi güvenlik uygulamalarını izlemeyi ve WordPress Ayarları API'sini kullanarak profesyonel bir arka uç yönetici arayüzü oluşturmayı öğrendiniz.

Eklenti geliştirmenin temelinde WordPress kanca sistemini ve veri akışını anlamak yatar. Basit özelliklerle başlayıp karmaşıklığı kademeli olarak artırarak, güvenlik, performans ve sürdürülebilirliği her zaman ön planda tutarak tutarlı bir şekilde pratik yapın. Deneyim kazandıkça güçlü, profesyonel ve popüler WordPress eklentileri geliştirebileceksiniz.

Sıkça Sorulan Sorular.

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

Eklenti temel olarak PHP ile yazıldığı için PHP programlama konusunda sağlam bir bilgiye sahip olmanız gerekecektir. Ön uç sunumu ve etkileşimini ele almanız gerekeceğinden HTML, CSS ve JavaScript hakkında temel bir anlayış da gereklidir. En önemlisi, kancalar (eylemler ve filtreler), döngüler, şablon hiyerarşileri ve veritabanı manipülasyonu (WP_Query ve WP_User_Query gibi sınıflar aracılığıyla) gibi temel WordPress kavramlarına aşina olmanız gerekir.

Eklentimde nasıl hata ayıklanır ve test edilir

Her şeyden önce, üretim sitesini etkilememek için yerel geliştirme ortamında (örneğin Flywheel, XAMPP tarafından Yerel) veya çevrimiçi test sitesinde geliştirme yapmanız şiddetle tavsiye edilir. WordPress hata ayıklama modunu etkinleştirinwp-config.phpDosyada ayarlar yapılmıştır.define( 'WP_DEBUG', true );Bu, PHP hatalarını ve uyarılarını ekranda gösterecektir. Kullanınerror_log()işlevi, özel hata ayıklama bilgilerini sunucunun hata günlüğüne kaydeder. Daha karmaşık hata ayıklama işlemleri için Query Monitor, Debug Bar ve diğerleri gibi profesyonel hata ayıklama eklentilerini kullanmayı düşünün.

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

Geliştirme yaparken, işlev kullanımdan kaldırma bildirimleriyle ilgili resmi WordPress belgelerine dikkat edin. “Kullanımdan kaldırılmış” olarak işaretlenmiş işlevleri kullanmaktan kaçının. Eklentinin ana dosyasındaRequires at leastTested up touyumlu WordPress sürümlerini bildirmek için başlıklar. Eklentinizi düzenli olarak WordPress'in yeni sürümlerinde test edin ve zamanında kod ayarlamaları için çekirdek değişiklik günlüğünü takip edin.

Eklentimi resmi WordPress eklenti dizininde nasıl yayınlarım?

Öncelikle, eklentinizin resmi eklenti geliştirme şartnameleri ve gönderim yönergeleriyle tamamen uyumlu olduğundan emin olmanız gerekir. Buna kod kalitesi, güvenlik, lisans sözleşmesi (GPLv2 veya üstü olmalıdır) vb. dahildir. Ardından, WordPress.org'da bir SVN deposu talep edin. Eklenti kodunuzu şu adresteki SVN deposuna gönderintrunkdizinini oluşturun ve uygunreadme.txtdosyası (belirli bir format kullanarak). İnceleme ve onaydan sonra, eklentiniz resmi katalogda görünecektir.