Hazırlık İşlemleri ve Geliştirme Ortamının Kurulması
Herhangi bir kod yazmaya başlamadan önce, bilimsel bir geliştirme ortamı başarının ilk adımıdır. Öncelikle, yerel bilgisayarınızda bağımsız bir WordPress ortamı kurmanız gerekmektedir. XAMPP, MAMP, Local by Flywheel veya Laragon gibi entegre ortamları kullanmanız şiddetle tavsiye edilir; bu ortamlar PHP, MySQL ve web sunucusunu (genellikle Apache veya Nginx) tek bir tıklamayla kolayca yapılandırmanıza olanak tanır. Geliştirme ortamınızda çalışan PHP sürümünün hedeflediğiniz WordPress sürümüyle uyumlu olduğundan emin olun; genellikle PHP 7.4 veya daha yüksek bir sürüm kullanılması önerilir.
Bundan sonra, bir kod editörüne veya entegre geliştirme ortamına (IDE) ihtiyacınız olacak. PHPStorm, Visual Studio Code veya Sublime Text gibi araçlar mükemmel seçeneklerdir; bunlar sözdizimi vurgulama, kod hata ayıklama ve sürüm kontrolü entegrasyonu gibi özellikler sunar. WordPress eklenti dosyalarının organizasyonunu anlamak için klasör yapısını net bir şekilde gösterebilen bir editör kullanmak çok önemlidir.
Kodlamaya başlamadan önce, WordPress eklentilerinin temel dosyalarını anlamanız gerekmektedir. Her eklenti en az bir ana PHP dosyasından oluşur; örneğin, adı “main.php” olan bir dosya olabilir. my-first-plugin.phpBu dosya, bir eklentinin temel bilgilerini WordPress’e bildirmek için kullanılan özel bir eklenti başlık bilgisi içermelidir; bu bilgi, eklentinin “kimlik kartı” gibidir. Aynı zamanda, eklentinin dizin yapısını da önceden planlamalısınız. Basit eklentiler sadece bir dosya içerebilirken, karmaşık eklentiler genellikle birden fazla dizin içerir. /assets/ CSS ve JavaScript dosyalarını saklamak için…/includes/ İşlevsel sınıf dosyalarını saklamak için…/languages/ Uluslararasılaştırılmış dosyaları saklamak için net bir yapı oluşturmak, bakımı ve ekip işbirliğini kolaylaştırır.
Tavsiye edilen okuma Sıfırdan başlayarak WordPress eklenti geliştirmeyi öğrenin: Kapsamlı bir rehber ve uygulamalı eğitimler.。
Çekirdek Eklenti Geliştirme Süreci
Eklenti oluşturmanın temel süreci, ana dosyanın yazılmasıyla başlar. Tüm eklentiler, belirli bir başlık yorumu ile başlamalıdır. Bu yorum, WordPress’e eklentinin adını, açıklamasını, sürümünü, yazarını ve diğer bilgileri bildirir.
Aşağıda, doğrudan belirtilen yere yerleştirilmesi gereken en temel eklenti ana dosyası örneği bulunmaktadır: /wp-content/plugins/ Örneğin, dizinin içinde… example-plugin/example-plugin.php。
<?php
/**
* 插件名称: 我的第一个插件
* 插件 URI: https://example.com/my-first-plugin
* 描述: 这是一个用于演示的基础WordPress插件。
* 版本: 1.0.0
* 作者: 张三
* 作者 URI: https://example.com
* 许可证: GPL v2 or later
* 文本域: my-first-plugin
*/
// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
exit; // 如果ABSPATH未定义,则退出脚本
}
Bu dosyayı kaydettikten sonra, WordPress arayüzündeki “Eklentiler” sayfasında bunu görebilir ve etkinleştirebilirsiniz. Şu an için hiçbir şey yapmasa da, bu eklentinin temel yapısının oluşturulduğu anlamına gelir. Bundan sonra, çekirdek işlevsel mantığı (yani eklentinin asıl amacını gerçekleştiren kısımları) eklemeniz gerekecek.
Tipik bir özellik, WordPress sayfalarının veya makale içeriklerinin değiştirilmesidir. Basit bir fonksiyon oluşturabilir ve ardından bu fonksiyonu WordPress’in filtre kancaları (Filter Hooks) aracılığıyla içeriğe bağlayabiliriz. Örneğin, aşağıdaki kod her makalenin sonuna otomatik olarak özelleştirilmiş bir metin ekler. Öncelikle bir fonksiyon tanımlayalım. myplugin_add_footer_textArdından kullanın. add_filter Fonksiyon, bunu monte eder. the_content Filtre üzerinde.
// 在文章内容末尾添加自定义文本的函数
function myplugin_add_footer_text( $content ) {
// 仅对主循环中的文章单页生效
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><em>Bu metin, “My First Plugin” tarafından geliştirilmiştir.</em></p>';
$content .= $custom_text;
}
return $content;
}
// 将函数挂载到 `the_content` 过滤器
add_filter( 'the_content', 'myplugin_add_footer_text' );
Filtrelerin yanı sıra, Eylem Kancaları (Action Hooks) da WordPress’in işlevlerini genişletmenin önemli yollarındandır. Filtrelerden farklı olarak, eylemler genellikle belirli zaman noktalarında görevlerin yürütülmesi için kullanılır; örneğin, yönetim panelinde menü sayfalarının eklenmesi gibi. Bunu yapmak için… add_action Bir fonksiyonu başka bir fonksiyona bağlamak için kullanılan mekanizmalar vardır. Örneğin, arka planda bir ayar menü öğesini eklerken, bu öğe genellikle ilgili fonksiyona bağlanır. admin_menu Bu eylem hook’u.
Tavsiye edilen okuma WordPress Eklenti Geliştirmeyi Sıfırdan Öğrenin: Özel Özellikler Oluşturma ve En İyi Uygulamalar。
Gelişmiş Özellikler ve Entegrasyonlar
Eklentilerin işlevleri arttıkça, tüm kodu ana dosyada bir araya getirmek yönetimi zorlaştırır. İleri düzey eklenti geliştirme, kodu organize etmek için nesne yönelimli programlamanın (OOP – Object-Oriented Programming) kullanılmasını önerir. Eklentinin temel işlevlerini temsil eden sınıflar oluşturarak, verileri ve işlevleri daha iyi bir şekilde kapsayabilir ve isim çatışmalarını azaltabilirsiniz.
Aşağıda, sınıf metotları kullanılarak kısa bir kod işlevi oluşturulan basit bir örnek bulunmaktadır. Bir sınıf oluşturacağız. My_Shortcode_Plugin Kısa bir kod kaydetmek için öncelikle sınıfın yapıcısını (constructor) tanımlamanız ve bu yapıcı içinde kısa kodu kaydetmeniz gerekiyor.
class My_Shortcode_Plugin {
public function __construct() {
// 在构造函数中注册短代码
add_shortcode( 'greeting', array( $this, 'render_greeting_shortcode' ) );
}
// 短代码渲染函数
public function render_greeting_shortcode( $atts, $content = null ) {
// 处理短代码属性
$atts = shortcode_atts( array(
'name' => '访客',
), $atts, 'greeting' );
// 返回渲染的输出
return '<div class="greeting">Merhaba, '. esc_html($atts['name'])'. '!'. $content. ‘</div>';
}
}
// 实例化插件类
new My_Shortcode_Plugin();
Bir eklentinin mükemmel olması için sadece işlevselliği değil, aynı zamanda ön uç stilinin ve etkileşiminin de göz önünde bulundurulması gerekir. Bu, CSS ve JavaScript dosyalarını güvenli bir şekilde dahil etmeniz gerektiği anlamına gelir. WordPress, betiklerin ve stil şemalarının kaydedilmesi ve eklenebilmesi için kapsamlı bir API sunar.
Bunu şu şekilde yapabilirsiniz: wp_register_script、wp_register_style Ve buna karşılık gelen ekleme fonksiyonları wp_enqueue_script 和 wp_enqueue_style Örneğin, aşağıdaki kod, bir eklentinin stil şemasının ön tarafta nasıl kaydedileceğini ve ekleneceğini göstermektedir. Genellikle, bunu şu şekilde yaparız: wp_enqueue_scripts Kancalar (hooks) özellikle ön uç (frontend) için kullanılır, oysa… admin_enqueue_scripts Kancalar arka planda kullanılır.
// 注册并加入插件前端样式和脚本的函数
function myplugin_enqueue_assets() {
// 注册一个CSS文件
wp_register_style(
'myplugin-frontend-style',
plugins_url( 'assets/css/frontend.css', __FILE__ ),
array(),
'1.0.0'
);
// 将CSS文件加入队列
wp_enqueue_style( 'myplugin-frontend-style' );
}
// 挂载到 `wp_enqueue_scripts` 钩子(前端)
add_action( 'wp_enqueue_scripts', 'myplugin_enqueue_assets' );
Ayrıca, arka plan seçeneklerinin oluşturulması modern eklentiler için yaygın bir ihtiyaçtır. Bu, WordPress’in Settings API’sini kullanmayı gerektirir; bu API, ayar seçeneklerini oluşturmak, doğrulamak ve kaydetmek için güvenli ve standartlaştırılmış bir yol sunar. Kullanmanız gereken… add_options_page Bu fonksiyon, bir alt menü sayfası eklemek için kullanılır ve aynı zamanda… register_setting、add_settings_section 和 add_settings_field Bu fonksiyonlar, ayar formlarını oluşturmak ve verileri işlemek için kullanılır.
Eklenti testi, paketleme ve yayınlama
Kodlamayı tamamladıktan sonra, eklentinin kalitesini garanti altına almanın anahtarı titiz testlerdir. Farklı ortamlarda testler yapmanız gerekmektedir. Öncelikle yerel geliştirme ortamınızda temel işlevlerin test edildiğinden emin olun; ardından çevrimiçi ortamı simüle eden Staging sunucusunda uyumluluk testleri gerçekleştirin. Testler şunları içermelidir: Mevcut ve önceki ana sürümlerle WordPress’in uyumluluğu; kullandığınız temalar ve diğer popüler eklentilerle uyumluluk; yeni ve eski PHP sürümleriyle (örneğin PHP 7.4 ve 8.x) uyumluluk; ve ön uçun farklı tarayıcılarda (Chrome, Firefox, Safari) nasıl performans gösterdiğine dair testler. WordPress’in hata ayıklama modunu etkinleştirmek, PHP hatalarını veya uyarılarını tespit etmenize yardımcı olabilir. wp-config.php Dosyada ayarlar yapılmıştır. WP_DEBUG 为 true Bu özelliği etkinleştirebilirsiniz.
Tavsiye edilen okuma WordPress Eklenti Geliştirme Başlangıç Kılavuzu: Sıfırdan Başlayarak İlk İşlevsel Genişlemenizi Oluşturun。
Eklentinin stabil olduğundan emin olduktan sonra, paketleme öncesinde hazırlıklar yapmanız gerekiyor. Bu işlem en az iki ana adımdan oluşur: Kodun uluslararasılaştırılması (i18n) ve Readme dosyasının hazırlanması. Uluslararasılaştırma, eklentinizin çeşitli dilleri desteklemesini sağlar ve bir eklentinin dünya çapında kullanılmasının temelidir. Kullanıcılara gösterilen tüm metinler için WordPress’in çeviri fonksiyonlarını kullanmanız gerekir. ()、_e() 和 esc_html()Aynı zamanda, /languages/ Katalogda, çevirmenlerin kullanımı için bir POT şablon dosyası bulunmaktadır.
Diğer gerekli dosya, standart formatlarda hazırlanmış bir dosyadır. readme.txtBu içerik, WordPress’in resmi eklenti kataloğunda gösterilmek için kullanılır ve belirli bir dilbilgisi formatına göre yazılmalıdır. Eklentinin adı, açıklaması, kurulum adımları, sık karşılaşılan sorunlar, güncelleme kayıtları gibi bilgileri içermelidir. WordPress.org bu formatı zorunlu kılar. readme.txt Biçimin yazımı konusunda katı gereklilikler bulunmaktadır; yazımınızı yaparken resmi belgelere başvurabilirsiniz.
Hazırlık işlemleri tamamlandıktan sonra paketleme işlemine başlayabilirsiniz. Geçici bir klasör oluşturun ve geliştirme araçları (örneğin Git dizinleri, IDE yapılandırma dosyaları) ile nihai olarak gerekli olmayan dosyalar (örneğin orijinal PSD dosyaları) dışındaki tüm eklenti dosyalarını bu klasöre kopyalayın. Tüm dosyaların yolunu ve izinlerini doğru bir şekilde ayarladığınızdan emin olun. Daha sonra, bunları ZIP sıkıştırma aracı kullanarak bir ZIP dosyası haline getirin. my-first-plugin-v1.0.0.zipBu ZIP dosyasının ana dizininde doğrudan eklentinizin bulunduğu klasör olmalı.
Son olarak, heyecan verici olan yayın aşamasına geldik. WordPress.org üzerinden ücretsiz bir SVN kod deposu talep edebilirsiniz; bu, eklentiyi resmi kataloga yüklemenin tek yoludur. Düzenlenmiş eklenti kodunu ilk kez depoya göndermek için temel SVN komutlarına aşina olmanız gerekmektedir. /trunk/ İçindekiler. İşlenmiş olan… readme.txt Ana dosyadaki stabil sürüm numarası güncellendikten sonra, yeni bir SVN etiketi oluşturabilirsiniz (örneğin: /tags/1.0.0/Sürümü yayınlamak için bu adımları izleyin. Gönderimden sonra, WordPress.org’un sistemi otomatik olarak işlemi gerçekleştirecek ve genellikle birkaç saat içinde eklentiniz resmi katalogda yer alacak; böylece dünya genelindeki kullanıcılar tarafından aranıp indirilebilecek.
Özetle.
Sıfırdan bir WordPress eklentisi geliştirmek, sistematik ve tatmin edici bir süreçtir. Bu süreç, yerel bir ortamın kurulması ve çekirdek dosya yapısının anlaşılmasıyla başlar; ardından eklenti başlık bilgilerinin yazılması, filtrelerin ve eylem kancalarının kullanılması yoluyla çekirdek işlevlerin gerçekleştirilmesi gelir. İhtiyaçların karmaşıklığı arttıkça, nesne yönelimli programlama tekniklerinin kullanılması, ön uç kaynakların güvenli bir şekilde entegre edilmesi ve arka uç yönetim arayüzlerinin oluşturulması gerekli beceriler haline gelir. Geliştirme sürecinin sonunda, kapsamlı uyumluluk testleri, titiz uluslararasılaştırma çalışmaları ve belge hazırlığı, ayrıca standartlara uygun paketleme ve yayın süreçleri, eklentinin kişisel bir eserden topluluk tarafından kullanılabilir bir ürüne dönüşmesini sağlar. Bu sürecin tamamını öğrenmek, sadece belirli web sitesi ihtiyaçlarını çözmenizi sağlamakla kalmaz; aynı zamanda WordPress ekosisteminin gelişimine de derinden katkıda bulunmanızı sağlar.
Sıkça Sorulan Sorular.
### geliştirme eklentisi için hangi ön koşul bilgilerine sahip olunmalıdır?
WordPress eklentisi geliştirmek için öncelikle sağlam bir PHP programlama temeline sahip olmanız gerekmektedir; çünkü eklenti kodları esas olarak PHP ile yazılır. Aynı zamanda, ön uç görünümü ve etkileşimi yönetebilmek için HTML, CSS ve JavaScript konularında temel bilgilere sahip olmanız gerekir. WordPress’in temel kavramlarına aşina olmak – temalar, hook’lar (Hook’lar), kısa kodlar (Shortcode’lar), sorgular (Queries) ve çeşitli API’ler (örneğin Options API, REST API) – verimli geliştirme için çok önemlidir. Her alanda uzman olmanız beklenmez; ancak bu bilgilere sahip olmak, geliştirme sürecinde daha az hata yapmanıza yardımcı olacaktır.
Özelleştirilmiş eklentilerdeki hataları nasıl etkili bir şekilde ayıklayabilirsiniz?
En etkili hata ayıklama yöntemi, WordPress’in hata ayıklama modunu etkinleştirmektir. Web sitesinde… wp-config.php Dosyada bulun ve ayarla. define( 'WP_DEBUG', true );Bu, PHP hatalarını, uyarılarını ve bildirimlerini doğrudan sayfada gösterecektir.
Değişkenlerin ve dizilerin içeriğini daha net bir şekilde görmek için bunları bir arada kullanabilirsiniz. error_log() Fonksiyon, bilgileri sunucunun hata günlüğüne kaydeder veya yardımcı fonksiyonlar kullanarak bunu gerçekleştirir. print_r() 或 var_dump()Ve bunu HTML formatında çıktı olarak alın. <pre> Etiketler, biçimlendirme amacıyla sarılmıştır. Ayrıca, tarayıcının geliştirici araçlarını (F12) kullanarak ağ isteklerini ve JavaScript kontrol panelindeki hataları incelemek de çok önemli bir adımdır. Karmaşık mantıklar için Xdebug gibi profesyonel hata ayıklama araçlarını kullanmayı düşünebilirsiniz.
Eklentim arka planda aktive edildikten sonra web sitesinde hiçbir değişiklik neden olmuyor?
Bu durum genellikle birkaç yaygın nedenden kaynaklanır. Öncelikle, işlev kodunuzun doğru bir şekilde çalıştırıldığından emin olun. Fonksiyonlarınızın testlerden geçtiğinden ve herhangi bir hata olmadığından emin olun. add_action 或 add_filter Doğru “hook”lara monte edildi ve bu “hook”lar beklendiğiniz sayfalarda (örneğin ön uç, arka uç) tetikleniyor.
İkincisi, eklentinizin dilbilgisi hataları veya ciddi hatalar nedeniyle sessizce devre dışı bırakılmadığından emin olun. WordPress yönetim panelindeki “Yüklü Eklentiler” sayfasını kontrol edin; eklentinizin adı “Hasarlı Eklenti” olarak görünüyorsa, bu genellikle eklentinin başlık bilgilerinin eksik olduğu veya ana dosyasında dilbilgisi hataları bulunduğu anlamına gelir. Son olarak, kodunuzdaki koşullu ifadelerin (conditionals) doğru çalıştığından emin olun. is_single(), is_admin()Bu koşullar, mevcut sayfanın karşılamadığı durumlar olabilir; bu da işlevin gerçekleşmemesine neden olabilir.
Bir eklentiye kullanıcıların yapılandırabileceği ayarlar nasıl eklenir?
WordPress’in yerleşik Settings API’sini kullanarak ayar öğeleri oluşturmanız önerilir; bu en güvenli ve standart yöntemdir. Temel adımlar şunlardır: Öncelikle, add_menu_page() 或 add_options_page() Fonksiyon, arka planda bir menü sayfası ekler. Daha sonra, bu menü sayfasını kullanır. register_setting() Fonksiyon, bir ayar grubu kaydeder (güvenlik doğrulaması ve kaydetme için kullanılır). Daha sonra, bu ayar grubu kullanılır. add_settings_section() Ayarlar sayfanıza bölge gruplamaları ekleyin. Son olarak, bunları kullanın. add_settings_field() Bir grupta belirli form alanları (örneğin giriş kutuları, açılır menüler) eklemek istiyorsunuz. Her alanın HTML’sini renderlemek için bir geri çağırma (callback) fonksiyonu yazmanız gerekecek ve bu HTML’leri sonunda menü sayfasındaki geri çağırma fonksiyonunda kullanacaksınız. settings_fields() 和 do_settings_sections() Lütfen tüm formu gösterin. Kullanıcı formu gönderdikten sonra, WordPress verilerin kaydedilmesini ve doğrulanmasını otomatik olarak gerçekleştirir.
Bir eklentiyi WordPress resmi eklenti dizinine nasıl gönderebilirim?
Eklentiyi resmi kataloga göndermek için öncelikle WordPress.org’da bir hesap oluşturmanız gerekiyor. Daha sonra, eklenti gönderim sayfasına giderek yeni bir eklenti SVN deposu için başvuruda bulunun. Başvurunuz onaylandığında bir SVN deposu adresi alacaksınız. Ardından, eklenti dosyalarınızı resmi standartlara uygun şekilde hazırlamanız gerekecek, özellikle de gerekli şartları karşılamaları önemlidir. readme.txt Bir dosya ve standart başlık yorumlarını içeren bir PHP dosyası.
SVN istemcisi (komut satırı araçları veya TortoiseSVN gibi) kullanarak, eklenti kodunuzu ilk kez depoya gönderin. /trunk/ İçindekiler. Stabil bir sürüm yayınladığımızda, /trunk/ İçeriğin kopyalanması için lütfen ilgili metni buraya yapıştırın. /tags/ Dizin içinde yeni bir etiket oluşturun (örneğin: “new_tag”). /tags/1.0.0/) ve bunu… readme.txt “Stable tag” alanı bu sürüm numarasıyla güncellenecektir. Gönderimden sonra, WordPress.org bunu otomatik olarak işleyecek ve bir süre sonra eklentiniz resmi katalogda yer alacaktır.
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.
- WooCommerce’u Nasıl Kurarsınız: Sıfırdan Başlayan Kapsamlı Mağaza Yapılandırma Kılavuzu
- WordPress teması nedir? Başlangıçtan ileri seviyeye kadar kapsamlı bir rehber
- Mükemmel bir WordPress temasını nasıl seçer ve özelleştirirsiniz?
- WordPress Eklenti Geliştirme Kılavuzu: Sıfırdan Başlayarak İlk Özel Eklentinizi Oluşturun
- WordPress Eklenti Geliştiricisi Olmak: Sıfırdan Bir’e Kapsamlı Rehber