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.
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() && in_the_loop() && 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.
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() {
?>
<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>
<?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_section和add_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_style和wp_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.
/* 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_style和wp_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.
Bir sonraki adım, bundan sonra ne yapmalıyım?
Daha fazla okuma ve pratik bilgiler.
Aşağıdaki içerikler bu makalenin konusuyla ilgilidir ve daha fazla okumak için uygundur. Öncelikle mevcut sorununuza en yakın makaleden başlayın, sonra çevresel konulara doğru ilerleyin, genellikle daha iyi sonuçlar alırsınız.
- 2026'da web sitesi performansını ve güvenliğini artırmak için kurulması gereken en iyi 10 WordPress eklentisi önerisi.
- WooCommerce’u Derinlemesine Analiz Etmek: Sıfırdan Başlayarak Güçlü Bir WordPress E-Ticaret Sitesi Oluşturmak
- 2026 Yılında Web Sitelerinin Performansını ve Güvenliğini Artırmak İçin En İyi 10 WordPress Eklentisi
- 10 Pratik WordPress Eklentisi Tavsiyesi: Web Sitesi Performansını ve Güvenliğini Büyük Ölçüde Artırın
- WordPress web sitelerinin performansını ve güvenliğini artırmak için 10 önerilen eklenti: