WordPress Eklenti Geliştirme Temel Bilgileri
Kod yazmaya başlamadan önce, WordPress eklentilerinin temel kavramlarını anlamak çok önemlidir. Bir WordPress eklentisi, esasen bir veya daha fazla PHP dosyasından oluşan bir koleksiyondur ve WordPress tarafından sağlanan çeşitli araçlar aracılığıyla çalışır.API和HookWordPress’in temel özelliklerini genişletmek veya değiştirmek için eklentiler kullanılır. Eklentiler, yalnızca bir kısayol eklemek kadar basit olabileceği gibi, tam bir e-ticaret platformu oluşturacak kadar karmaşık da olabilir. Tüm eklentiler WordPress’in resmi deposunda saklanır./wp-content/plugins/Dizin içinde, her eklentinin kendine ait bir klasörü vardır.
Eklentiler geliştirmenin özü, WordPress’in yapısını ve işleyişini iyi anlamaktadır.动作钩子和过滤器钩子。动作钩子Belirli zaman noktalarında (örneğin sayfa yüklendiğinde, makale yayınlandığında) özelleştirilmiş PHP kodlarınızı çalıştırmanıza izin verir.过滤器钩子Bu durum, WordPress’un çalışma sırasında ürettiği çeşitli verileri (makale içeriği, başlıklar, özetler vb.) değiştirmenize izin verir. Bu “hook” (düğüm)ların kullanımını ustaca bilmek, eklenti geliştirmede kritik bir öneme sahiptir.
Eklentilerin WordPress tarafından tanınabilmesi için, her eklentinin standart bir eklenti başlık yorumu içermesi gerekir. Bu yorum bloğu genellikle eklentinin ana PHP dosyasının başında bulunur ve WordPress’e eklentinin adı, açıklaması, sürümü, yazarı gibi temel bilgilerini sağlar. Bu başlık bölümü olmadan, eklenti arka plandaki eklenti listesinde görünmeyecektir.
Tavsiye edilen okuma WordPress Eklenti Geliştirme Konusunda Derinlemesine Bilgi: Sıfırdan Profesyonel Genişletmeler Oluşturmaya。
İlk eklentinizi oluşturun.
En basit “Hello World” eklentisini oluşturarak başlayacağız. Bu eklenti, WordPress yönetim panelinin panosunun üst kısmında özelleştirilmiş bir hoş geldin mesajı gösterecektir.
Eklenti dizinini ve ana dosyayı başlatın.
Öncelikle, yerel geliştirme ortamınızda veya test sitesinde bazı adımları atmanız gerekiyor. /wp-content/plugins/ Katalog altında yeni bir klasör oluşturun. Buna “New Folder” adını verelim. my-first-pluginDaha sonra, bu klasör içinde bir ana PHP dosyası oluşturun. Genellikle bu dosyaya eklentinin adını veririz; burada ise bir eklenti adı kullanarak bir dosya oluşturacağız. my-first-plugin.php。
在 my-first-plugin.php Dosyanın başına, eklentinin başlık bilgileri eklenmelidir. Bu, eklentinin “kimlik kartı”dır.
Plugin başlık bilgilerini ve temel fonksiyonları yazın.
Dosya oluşturulduktan sonra, onu açın ve aşağıdaki kodu girin:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于学习插件开发的入门示例,会在仪表盘显示欢迎信息。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Bu yorum, eklentinin temel bilgilerini tanımlamaktadır. Dosyayı kaydettikten sonra, WordPress arayüzüne giriş yapın ve “Eklentiler” sayfasına gidin. Orada “İlk Eklentim” adında yeni bir eklenti görmelisiniz. Şimdi bu eklentiyi etkinleştirin; henüz herhangi bir özelliği yoktur.
Tavsiye edilen okuma WordPress Eklenti Geliştirme Kılavuzu: Sıfırdan Başlayarak Kendi Eklentinizi Oluşturun。
Şimdi, ona ilk özelliği ekleyeceğiz. Bunun için şu adımları izleyeceğiz: add_action() Bu fonksiyon, özel bir fonksiyonu WordPress’in eylem kancalarına (action hooks) bağlar. Başlık bölümündeki yorumların hemen altına aşağıdaki kodu ekleyin:
// 在仪表盘顶部添加欢迎信息
function my_first_plugin_admin_notice() {
echo '<div class="notice notice-success is-dismissible"><p>“İlk Eklentim”i kullanmaya hoş geldiniz! Bu, başarılı bir başlangıçtır.</p></div>';
}
add_action( 'admin_notices', 'my_first_plugin_admin_notice' ); Burada, “” adında bir şey oluşturduk. my_first_plugin_admin_notice Bu fonksiyonun amacı, bir WordPress arka plan stilindeki bildirimi göstermek için kullanılan bir HTML kodu çıkarmaktır. Daha sonra, bunu kullanıyoruz. add_action( ‘admin_notices’, ‘my_first_plugin_admin_notice’ ) Bu fonksiyonu şu yere monte edin: admin_notices Bu eylem, bir “hook” (düğüm) üzerine bağlanmış durumda. Bu da, WordPress arka planda yönetim bildirimlerini göstermeye hazırlandığında her seferinde fonksiyonumuzun çalışacağı anlamına geliyor.
Dosyayı kaydettikten sonra, WordPress arayüzünün herhangi bir sayfasını yenileyin; sayfanın üst kısmında yeşil bir başarı bildirimi kutusu göreceksiniz. Tebrikler, ilk işlev eklentiniz başarıyla çalıştı!
Eklentiye ayar sayfası ekleyin.
Bir eklentinin tamamlanmış hali genellikle kullanıcılara ayar seçenekleri sunmalıdır. “İlk Eklentim” için, kullanıcıların hoş geldin mesajında görüntülenecek metni özelleştirebilecekleri basit bir ayar sayfası ekleyeceğiz.
Yönetim menü öğesini oluşturun.
Öncelikle, WordPress’in arka uç yönetim panelindeki kenar çubuğuna bir menü öğesi eklememiz gerekiyor. Bunun için şu adımları izlememiz gerekiyor: add_action() Fonksiyon monte edildi. admin_menu Kancalar (Hooks). Eklentinin ana dosyasına aşağıdaki kodu eklemeye devam edin:
// 添加插件设置页面到后台菜单
function my_first_plugin_add_menu() {
add_menu_page(
‘我的第一个插件设置’, // 页面标题
‘第一个插件’, // 菜单标题
‘manage_options’, // 权限 (manage_options 表示管理员权限)
‘my-first-plugin-settings’, // 菜单 slug
‘my_first_plugin_settings_page’, // 用于显示页面内容的回调函数
‘dashicons-smiley’, // 菜单图标 (Dashicons)
100 // 菜单位置
);
}
add_action( ‘admin_menu’, ‘my_first_plugin_add_menu’ ); add_menu_page() Bu fonksiyon, WordPress’in çekirdek fonksiyonlarından biridir ve arka planda üst düzey menülerin eklenmesi için kullanılır. Sayfanın başlığını, menüde gösterilecek metni ve erişim izinlerini (burada yalnızca yöneticilerin erişebileceği şekilde ayarlandı) tanımladık. manage_optionsuniqueslugAyrıca, sayfa içeriğini çıkarmak için kullanılan geri çağırma (callback) fonksiyonlarının adları. my_first_plugin_settings_page。
Tavsiye edilen okuma Bulut barındırma için yeni başlayanlar rehberi: Sıfırdan başlayarak bulut sunucusu dağıtımı ve yönetimi kılavuzunu öğrenin.。
Oluşturulan ayar sayfası formu
Sonraki adımda, bir tanım yapmamız gerekir. my_first_plugin_settings_page Bu fonksiyon, ayar sayfasının HTML içeriğini oluşturmak ve formun kaydedilme işlemlerini yönetmek için kullanılır. Fonksiyon, verileri WordPress aracılığıyla iletecek basit bir form oluşturacaktır. options API, verilerin kaydedilmesi ve okunması için kullanılır.
// 设置页面的内容
function my_first_plugin_settings_page() {
// 检查用户权限
if ( !current_user_can( ‘manage_options’ ) ) {
wp_die( __( ‘你没有权限访问此页面。’ ) );
}
// 保存表单数据
if ( isset( $_POST[‘my_first_plugin_message’] ) ) {
update_option( ‘my_first_plugin_custom_message’, sanitize_text_field( $_POST[‘my_first_plugin_message’] ) );
echo ‘<div class="“notice" notice-success is-dismissible”><p>Ayarlar kaydedildi!</p></div>’;
}
// 获取已保存的消息
$saved_message = get_option( ‘my_first_plugin_custom_message’, ‘这是一个通过设置页面定制的欢迎消息!’ );
// 输出表单 HTML
?>
<div class="“wrap”">
<h1>İlk eklentim için yapılan ayarlar</h1>
<form method="“post”" action="/tr/“”/" data-trp-original-action="“”">
<table class="“form-table”">
<tr>
<th scope="“row”"><label for="“custom_message”">Özelleştirilmiş hoş geldin mesajı</label></th>
<td>
<input type="“text”" id="“custom_message”" name="“my_first_plugin_message”" value="”NO NUMERIC NOISE KEY" 1001” class="“regular-text”" />
<p class="“description”">Panel bildirimlerinde göstermek istediğiniz metni girin.</p>
</td>
</tr>
</table>
<?php submit_button( ‘保存更改’ ); ?>
<input type="hidden" name="trp-form-language" value="tr"/></form>
</div>
<?php
} Bu fonksiyonda, öncelikle kullanıcı yetkilerini kontrol ediyoruz. Daha sonra, bir POST isteği gönderilip gönderilmediğini (yani kullanıcının kaydetme düğmesine tıkladığına) kontrol ediyoruz. Eğer bir POST isteği varsa, kullanıyoruz… update_option() Bu fonksiyon, formdaki mesajları WordPress’e kaydeder. options Veritabanı tablosunda ve kullanılmaktadır. sanitize_text_field() Güvenlik filtrelemesi yapılır. Ardından, biz… get_option() Önceden kaydedilen değeri okuyun; eğer mevcut değilse varsayılan değeri kullanın. Son olarak, giriş kutularını içeren bir HTML formu oluşturup bunu görüntüleyin.
Bildirim fonksiyonunu, özelleştirilmiş mesajları kullanacak şekilde değiştirin.
Son olarak, daha önce oluşturduğumuz şeyi değiştirmemiz gerekiyor. my_first_plugin_admin_notice Bir fonksiyon oluşturalım; bu fonksiyon, kaydettiğimiz seçeneklerden mesajları okusun ve sabit bir metin göstermesin.
// 修改后的通知函数
function my_first_plugin_admin_notice() {
// 从数据库获取自定义消息
$custom_message = get_option( ‘my_first_plugin_custom_message’, ‘欢迎使用“我的第一个插件”!这是一个成功的开始。’ );
echo ‘<div class="“notice" notice-success is-dismissible”><p>’. esc_html($custom_message)‘.‘</p></div>’;
} Şimdi, eklentiyi aktive edin; arka plan kenar çubuğunda “İlk Eklenti” menüsünü göreceksiniz. Buna tıklayın, mesajı değiştirin ve kaydedin. Diğer arka plan sayfalarını yenileyin; üst kısımdaki bildirim mesajının artık kendi özelleştirdiğiniz içerikle değiştiğini göreceksiniz. Böylece, temel ekleme, silme, değiştirme ve sorgulama işlevlerine sahip küçük bir eklenti tamamlanmış olur.
Eklenti Geliştirme İçin En İyi Uygulamalar ve İleri Seviye Teknikler
Güvenli, bakımı kolay ve iyi uyumluluk özelliklerine sahip bir eklenti geliştirmek için bazı en iyi uygulamalara uyulması gerekmektedir.
Kod güvenliğini ve veri temizliğini sağlayın.
Güvenlik, eklenti geliştirmede en öncelikli konudur. Kullanıcı girdilerine veya harici veri kaynaklarından gelen verilere asla güvenmeyin. WordPress, verileri temizlemek, escape işlemi yapmak ve doğrulamak için birçok fonksiyon sunar.
* 净化输入:使用函数如 sanitize_text_field()、sanitize_email()、sanitize_url() Form gönderimindeki verileri işlemek için buradayız.
* 转义输出:在将任何数据输出到 HTML、JavaScript 或 URL 时,必须进行转义。使用 esc_html()、esc_attr()、esc_url() 和 wp_kses_post() Ve diğer fonksiyonlar.
* 权限检查:在进行任何管理操作之前,务必使用 current_user_can() Mevcut kullanıcının ilgili yetkilere sahip olup olmadığını kontrol edin, örneğin… current_user_can( ‘manage_options’ )。
* Nonce验证:对于涉及数据更改的操作(如表单提交、AJAX请求),使用 wp_nonce_field()、wp_verify_nonce() Korsan istek sahteciliği (Cross-Site Request Forgery – XSS) saldırılarını önlemek için, önceki ayar sayfası formlarını geliştirebilir ve güvenliği artırmak amacıyla “nonce” doğrulaması ekleyebiliriz.
Eklentiyi uluslararası hale getirmek (plugin internationalization)
Eklentinizin dünya genelindeki kullanıcılar tarafından kullanılabilmesi için uluslararasılaştırma (internationalization) kaçınılmaz bir adımdır. Bu, kullanıcılara yönelik tüm metin dizelerinin çevrilmesini gerektirir.
1. Metin alanını kullanın: Eklentinin baş kısmındaki yorumlarda tanımlayın. Text Domain(Örneğin) my-first-plugin) ve tüm çevrilmesi gereken metinlerde bunu kullanın. __(‘文本’, ‘my-first-plugin’) 或 _e(‘文本’, ‘my-first-plugin’) Function wrapping.
2. Çeviri dosyası oluşturma: Poedit gibi bir araç kullanarak eklentideki tüm çevrilebilir metinleri tarayın ve bir çeviri dosyası oluşturun. .pot Şablon dosyası, ardından çeşitli dillere çevrilir. .po 和 .mo Dosya.
3. Metin alanını yükleme: Eklenti başlatıldığında, bunu kullanın. load_plugin_textdomain() Fonksiyon, çeviri dosyanızı yükler.
Yönetim Eklentisi Yaşam Döngüsü
Profesyonel bir eklenti, etkinleştirme, devre dışı bırakma ve kaldırma olaylarını uygun bir şekilde işlemelidir. Bunu, ilgili kancalı (hook) fonksiyonlar oluşturarak gerçekleştirebilirsiniz.
* 激活钩子:使用 register_activation_hook() Bir fonksiyon kaydedin ve eklenti etkinleştirildiğinde çalışsın. Genellikle veritabanı tabloları oluşturmak, varsayılan ayarları başlatmak veya ortam uyumluluğunu kontrol etmek için kullanılır.
* 停用钩子:使用 register_deactivation_hook()Genellikle geçici verileri temizlemek veya planlanan görevleri durdurmak için kullanılır.
* 卸载钩子:使用 register_uninstall_hook()Not: Bu işlem, kullanıcı bir eklentiyi WordPress’ten tamamen kaldırdığında çalışır ve eklentinin oluşturduğu tüm veritabanı ayarlarını, özel tabloları ve dosyaları temizlemek için kullanılır. İşlem dikkatli bir şekilde yapılmalı ve kullanıcılara bu konuda açıkça bilgi verilmelidir.
Özetle.
Bu makale, sizi WordPress eklenti geliştirmenin temel süreçlerini sıfırdan başlayarak tamamen deneyimlemeye davet ediyor. Öncelikle, eklentilerin temel kavramlarını, özellikle de eylem kancaları (action hooks) ve filtre kancalarının (filter hooks) temel işlevlerini öğrendiniz. Daha sonra, klasörler, ana dosya ve standart başlık bilgilerini içeren bir eklenti çerçevesi oluşturdunuz ve bunu… add_action() Fonksiyonlar ve admin_notices Kancalar, ilk gösterim işlevini gerçekleştirdi. Daha sonra, eklentiye bir ayar sayfası ekleyerek bunun nasıl kullanılacağını öğrendiniz. add_menu_page() Arka plan menüsü oluşturma ve nasıl kullanılacağı update_option() 和 get_option() Verilerin ekleme, silme, değiştirme ve sorgulanması işlemleri gerçekleştirildi. Son olarak, güvenli kodlama, uluslararasılaştırma ve eklentilerin yaşam döngüsü yönetimi gibi profesyonel geliştirme süreçlerinde uygulanması gereken en iyi uygulamaları inceledik. Bu adımları ve ilkeleri takip ederek, basit, kullanışlı ve güvenli WordPress eklentileri geliştirme yeteneğine sahip olacaksınız ve bu temel üzerine daha karmaşık özellikler keşfetmeye devam edebilirsiniz.
Sıkça Sorulan Sorular.
WordPress eklentisi geliştirmek için hangi temel bilgilere ihtiyaç vardır?
PHP dilinin temel sözdizimini öğrenmeniz gerekiyor, çünkü eklenti kodları esas olarak PHP ile yazılmıştır. Ayrıca, ön uç arayüzlerini ve etkileşimleri oluşturmak için HTML, CSS ve temel JavaScript konularında bilgi sahibi olmanız gerekmektedir. En önemlisi, WordPress’in çekirdek yapısına aşina olmanızdır, özellikle de…HookSistem (eylemler ve filtreler),选项API、数据库APIçokREST APIWordPress’in kodlama standartlarını ve güvenlik en iyi uygulamalarını anlamak da son derece önemlidir.
Eklentimi nasıl hata ayıklar ve test ederim?
WordPress eklenti geliştirme sürecinde çeşitli hata ayıklama (debugging) yöntemleri bulunmaktadır. Öncelikle, kendi kodlarınızda olası hataları tespit etmek için aşağıdaki adımları izleyebilirsiniz: wp-config.php Dosyada etkinleştirildi. WP_DEBUG 和 WP_DEBUG_LOG “Constant” (Sabit): Bu ayar, PHP hatalarını ve uyarılarını belirli bir dosyaya kaydeder. /wp-content/debug.log Dosyada sorunların kolayca tespit edilmesi sağlanır. Ayrıca, mantığı karmaşık olan kodlar için belirli araçlar veya yöntemler kullanılabilir. error_log() Fonksiyon, değişken değerlerini loglara yazdırır. Ayrıca, üretim sitesini etkilememek için geliştirmelerin Local by Flywheel, XAMPP gibi yerel geliştirme ortamlarında veya geçici test sitelerinde yapılması önerilir. Kod değişikliklerini yönetmek için bir sürüm kontrol sistemi (örneğin Git) kullanmak da iyi bir alışkanlıktır.
Eklentim farklı WordPress sürümleriyle nasıl uyumlu olabilir?
Eklentinin geniş bir uyumluluk sağlaması için geliştirme sırasında aşağıdaki noktalara dikkat edilmelidir: Yalnızca en yeni WordPress sürümlerinde eklenen fonksiyonların kullanımından kaçınılmalıdır; kullanılması zorunluysa, bu fonksiyonlar dikkatli bir şekilde seçilmeli ve uygun yerlerde kullanılmalıdır. function_exists() Şart kontrolü yapın ve bir geri dönüş planı sağlayın. Eklentinin baş kısmındaki yorumlarda bunu belirtin. Requires at least 和 Tested up to Alanlarda, desteklediğiniz WordPress sürüm aralığını açıkça belirtin. Eklentinizi düzenli olarak en yeni WordPress sürümlerinde test edin ve uyumluluk bilgilerinizi zamanında güncelleyin. WordPress’in resmi kodlama standartlarına uymak da, çekirdek güncellemeleri nedeniyle oluşabilecek uyumluluk sorunlarını en aza indirmenize yardımcı olacaktır.
Eklentimi geliştirdikten sonra nasıl dağıtabilirim?
Eklentileri dağıtmak için esas olarak iki yol vardır. İlk yol, eklentiyi WordPress’in resmi eklenti dizinine ücretsiz olarak yüklemektir; bu sayede eklentiniz dünya çapında milyonlarca kullanıcı tarafından keşfedilir ve indirilir. Eklentiyi WordPress.org adresine giderek göndermeniz ve kodunuzun WordPress’in standartlarına ve inceleme kriterlerine uygun olduğundan emin olmanız gerekir. İkinci yol ise, eklentiyi kendi web siteniz aracılığıyla ticari olarak satmaktır. Bu durumda satış, ödeme, lisans doğrulama ve müşteri desteği işlemlerini kendiniz yürütmeniz gerekir. Ticari eklentiler için genellikle kod yapısını daha iyi organize etmek amacıyla OOP (Nesne Yönelimli Programlama) kullanılır ve lisans yönetimi, güncelleme bildirimleri gibi işlevleri basitleştirmek için çerçeveler entegre edilebilir. Hangi yöntemi seçerseniz seçin, açık ve anlaşılır dokümantasyon sağlamak ve zamanında destek sunmak çok önemlidir.
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.
- Web sitenizin performansını ve güvenliğini artırmak için mutlaka yüklemeniz gereken 10 WordPress eklentisi:
- Paylaşımlı Sunucular İçin Başlangıç Kılavuzu: Sıfırdan Başlayarak Uygun Web Barındırma Çözümünü Seçmek
- 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