Sıfırdan Başlayın: WordPress Eklenti Geliştirmenin Temel Adımlarını ve En İyi Uygulamalarını Öğrenin
WordPress eklenti geliştirme, WordPress web sitelerinin işlevlerini genişletmenin güçlü bir yoludur. Özel eklentiler oluşturarak, geliştiriciler web sitelerine özgün özellikler ekleyebilirler ve bunu yaparken çekirdek kodu değiştirmelerine gerek kalmaz. Bu, sadece web sitelerinin esnekliğini artırmakla kalmaz, aynı zamanda WordPress çekirdeğinde yapılan güncellemeler sırasında özelleştirilmiş özelliklerin güvenli ve stabil bir şekilde çalışmasını da sağlar. İyi yapılandırılmış bir WordPress eklentisi, belirli bir klasör yapısına, kodlama standartlarına ve WordPress API’sine uyar.
Bu makale, ilk eklenti dosyasını oluşturmadan eklentiyi güvenli bir şekilde yayınlamaya kadar olan tüm süreci adım adım anlatacaktır. Geliştirme sürecinde bilmeniz gereken temel kavramları, araçları ve en iyi uygulamaları kapsamaktadır.
Tavsiye edilen okuma WordPress Eklenti Geliştirme Kılavuzu: Sıfırdan Başlayarak Yüksek Kaliteli WordPress Genişletmeleri Oluşturma。
Geliştirme Ortamı ve Temel Yapı
Herhangi bir kod yazmadan önce, uygun bir geliştirme ortamı oluşturmak çok önemlidir. Local by Flywheel, XAMPP veya MAMP gibi yerel geliştirme araçlarının kullanılması önerilir; bu araçlar, PHP, MySQL ve web sunucusunu içeren bir ortamı hızlı bir şekilde yapılandırmanıza olanak tanır. Aynı zamanda, bir kod editörü (örneğin VS Code, PhpStorm) ve hata ayıklama araçları (örneğin Query Monitor, Debug Bar) da şarttır.
İlk eklenti dosyanızı oluşturun.
Bir WordPress eklentisinin en temel hali, belirli bir konumda bulunan bir dosyadır. /wp-content/plugins/ Klasörde bulunan PHP dosyaları. Eklentinin ana dosyasının baş kısmında, standart eklenti bilgilerini içeren açıklamalar bulunmalıdır. Bu, WordPress’in eklentiyi tanımasını ve yönetmesini sağlar.
“Create a named…” my-first-plugin.php Belgeyi açın ve aşağıdaki içeriği girin:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于演示的简单 WordPress 插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Bu dosyayı şu yere kaydedin: /wp-content/plugins/my-first-plugin/ Dosya içine koyun, ardından WordPress yönetim panelinin “Eklentiler” sayfasına giriş yapın; orada bu eklentiyi görebilir ve etkinleştirebilirsiniz. Şu an herhangi bir özelliği olmamasına rağmen, yapısal olarak tamamlanmış durumda.
Eklenti dizini ve dosya organizasyonu
İşlevlerin artmasıyla birlikte, tek bir dosyanın bakımı zorlaşır. İyi yapılandırılmış bir eklenti dizini genellikle aşağıdaki bölümleri içerir:
* 主插件文件:plugin-name.php
* includes/ İçerik: Temel işlev sınıflarını veya fonksiyon dosyalarını depolamak için.
* admin/ İçerik: Arka uçla ilgili kodları, CSS'i ve JavaScript'i depolamak için.
* public/ İçerik: Öncü sayfayla ilgili kodları, CSS'i ve JavaScript'i depolamak için.
* assets/ Dizin: Resimlerin, stil şablonlarının ve betik dosyalarının bulunduğu klasördür.
* languages/ İçerik: Uluslararası çeviri dosyalarının (.pot, .po, .mo) depolanması.
* uninstall.php Dosya: Eklenti silindiğinde, veritabanını temizlemek için kullanılan seçenekler.
Tavsiye edilen okuma WordPress Eklenti Geliştirme Kılavuzu: Başlangıçtan Gerçek Uygulamalara Kadar Detaylı Anlatım。
Çekirdek Geliştirme Kavramları ve Teknolojileri
WordPress eklenti geliştirmenin temeli, sunulan API’leri (Uygulama Programlama Arayüzleri) anlamak ve bunları ustaca kullanmaktır. Bu API’ler arasında Önlem Hook’ları (Action Hooks), Filtre Hook’ları (Filter Hooks) ve Kısa Kodlar (Shortcodes) bulunmaktadır.
Hareket kancalarının (action hooks) kullanımını öğrenin.
Eylem kancaları, WordPress tarafından belirli zaman noktalarında kendi kodunuzu “eklemenize” olanak tanır. Kullanımı oldukça kolaydır. add_action() Bir fonksiyon, özel olarak oluşturduğunuz fonksiyonu bir “hook” (düğüm, bağlantı noktası) üzerine monte edebilir.
Örneğin, aşağıdaki kod tüm sayfa başlıklarına özel bir meta etiketi ekler:
function myplugin_add_custom_meta() {
echo '<meta name="my-custom-meta" content="value">';
}
add_action( 'wp_head', 'myplugin_add_custom_meta' ); Başka bir yaygın örnek, eklenti etkinleştirildiğinde bazı başlangıç işlemlerinin yapılmasıdır; örneğin bir veritabanı tablosunun oluşturulması gibi. Bu işlem için fonksiyonların uygun yere bağlanması (mount edilmesi) gerekmektedir. register_activation_hook Kancada.
İçeriği filtreler kullanarak değiştirin.
Filtre hook’ları, WordPress’in işleme sürecindeki verileri değiştirmek için kullanılır. Bunu yapmak için… add_filter() Fonksiyonlar, metin içeriğini, seçenek değerlerini vb. değiştirmek için kullanılır. Filtre fonksiyonlarının mutlaka bir dönüş değeri olmalıdır.
Aşağıdaki örnek, makale içeriğinin sonuna otomatik olarak özelleştirilmiş bir metin parçası ekler:
Tavsiye edilen okuma WordPress Eklenti Geliştirme Rehberi: Sıfırdan Başlayarak İlk İşlevsel Eklentinizi Oluşturun。
function myplugin_modify_post_content( $content ) {
if ( is_single() ) {
$custom_text = '<p><em>Bu makaleyi okuduğunuz için teşekkür ederiz!</em></p>';
$content .= $custom_text;
}
return $content;
}
add_filter( 'the_content', 'myplugin_modify_post_content' ); Kısa kodlar oluşturmak ve yönetmek
Kısa kodlar, kullanıcıların makalelerde, sayfalarda veya araççıklarda eklentiler tarafından oluşturulan dinamik içeriği kolayca eklemelerini sağlar. add_shortcode() Bir fonksiyon, yeni bir kısa kod (short code) kaydedebilir.
“Bir isimle kaydolun…” [greeting] Zamanaya göre farklı selamlamalar gösterebilen kısa bir kod:
function myplugin_greeting_shortcode( $atts ) {
$hour = date( 'G' );
$greeting = ( $hour ? 'Günaydın!' : ( ($hour) < 18 ) ? '下午好!' : '晚上好!' );
return '<div class="greeting">'`. esc_html($greeting).`'</div>'add_shortcode( 'greeting', 'myplugin_greeting_shortcode' ); Eklenti Güvenliği ve Veri Yönetimi
Güvenli bir eklenti geliştirmek, web sitelerini ve kullanıcı verilerini korumanın ilk adımıdır. Bu, girdi doğrulaması, çıktıların güvenli bir şekilde işlenmesi, yetki kontrolü ve verilerin güvenli bir şekilde işlenmesini içerir.
Veri doğrulaması ve kod dönüşümünü (escape) gerçekleştirme
Kullanıcılardan gelen herhangi bir girdiye asla güvenmeyin. Verileri veritabanına kaydetmeden veya tarayıcıya göndermeden önce, mutlaka doğrulama ve escape işlemleri yapılmalıdır.
- Doğrulama: Kullanım
sanitize_text_field(),sanitize_email(),intval()Bu fonksiyonlar, kullanıcı tarafından girilen verileri temizler. - Eşleşme: Verileri HTML, JavaScript veya URL'ye çıktı olarak verirken, gibi ilgili eşleşme fonksiyonlarını kullanın.
esc_html(),esc_js(),esc_url()。
Örneğin, bir form aracılığıyla gönderilen kullanıcı adını güvenli bir şekilde işleyip çıktı olarak vermek:
$user_input = $_POST['username'] ?? ''; // 使用空合并运算符提供默认值
$clean_username = sanitize_text_field( $user_input );
echo '你好,' . esc_html( $clean_username ); WordPress Seçenekleri API’sini Kullanmak
Basit ayarların (örneğin açma/kapama seçenekleri, metinler vb.) saklanması gerektiğinde, WordPress Option API’sini kullanmalısınız. Bu API, bu tür ayarları yönetmek için gerekli araçları sağlar. add_option(), get_option(), update_option() 和 delete_option() Bu tür fonksiyonlar, verilerin güvenli bir şekilde saklanmasını sağlar. wp_options Tabloda.
Bir eklenti ayarı oluşturun ve bunu alın:
// 保存一个选项
update_option( 'myplugin_setting_color', '#336699' );
// 获取一个选项,如果不存在则使用默认值
$color = get_option( 'myplugin_setting_color', '#000000' ); Özel bir veritabanı tablosu oluşturun.
Eklentiler, karmaşık ilişkisel verileri depolamak gerektiğinde özel veritabanı tabloları oluşturmak zorunda kalabilir. Bu işlem genellikle eklentinin etkinleştirildiği sırada yapılır ve WordPress veritabanı şablonlarına uyulmalıdır.
在 my-first-plugin.php Bu metinde, eklenti için etkinleştirme mekanizmalarına (hook’lara) tablo oluşturma işlevinin eklenmesi gerekmektedir:
function myplugin_create_custom_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'myplugin_items'; // 使用 $wpdb->prefix 确保表前缀正确
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name varchar(100) NOT NULL,
created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
register_activation_hook( __FILE__, 'myplugin_create_custom_table' ); Eklenti arka plan yönetim arayüzünü oluşturma
Eklentiniz için kullanıcı dostu bir arka plan ayarları sayfası oluşturmak, mükemmel bir kullanıcı deneyimi sunmanın anahtarıdır. WordPress, yönetim menülerinin, ayar sayfalarının ve formların oluşturulma sürecini kolaylaştırmak için çeşitli API’ler sunar.
Yönetim menüsü ve alt menüleri ekleyin.
Kullanın. add_menu_page() 和 add_submenu_page() Bu fonksiyon, eklentinizin WordPress arka planındaki kenar çubuğuna menü öğeleri eklemesine olanak tanır.
Aşağıdaki koda, “Benim Eklentilerim” adında bir üst menü ve “Ayarlar” adında bir alt menü ekleyin:
function myplugin_add_admin_menu() {
// 添加顶级菜单
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限
'myplugin-dashboard', // 菜单 Slug
'myplugin_dashboard_page', // 回调函数,用于输出页面内容
'dashicons-admin-generic', // 图标
30 // 菜单位置
);
// 添加子菜单
add_submenu_page(
'myplugin-dashboard', // 父菜单 Slug
'插件设置', // 页面标题
'设置', // 菜单标题
'manage_options', // 权限
'myplugin-settings', // 子菜单 Slug
'myplugin_settings_page' // 回调函数
);
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );
// 定义“仪表盘”页面的回调函数
function myplugin_dashboard_page() {
echo '<div class="wrap"><h1>Benim eklenti panom</h1></div>';
}
// 定义“设置”页面的回调函数
function myplugin_settings_page() {
echo '<div class="wrap"><h1>Eklenti ayarlarım.</h1></div>';
} Entegrasyon Ayarları API’si ile Form Oluşturma
WordPress’in API ayarları, form ayarlarını oluşturmak, doğrulamak ve kaydetmek için güvenli ve standartlaştırılmış bir yol sunar. Bu süreç, ayarların kaydedilmesini, ayar bölümlerinin ve alanlarının eklenmesini içerir.
İşte, bir metin alanı içeren bir ayar sayfası oluşturmak için basit bir örnek:
function myplugin_settings_init() {
// 注册一个新的设置项 “myplugin_settings”
register_setting( 'myplugin_settings_group', 'myplugin_settings' );
// 添加一个新的设置区域
add_settings_section(
'myplugin_section_basic',
'基础设置',
null, // 区域描述的回调函数,这里不需要
'myplugin-settings' // 页面 Slug
);
// 在区域内添加一个字段
add_settings_field(
'myplugin_field_api_key',
'API 密钥',
'myplugin_field_api_key_callback', // 渲染字段 HTML 的回调函数
'myplugin-settings',
'myplugin_section_basic'
);
}
add_action( 'admin_init', 'myplugin_settings_init' );
// 字段的回调函数
function myplugin_field_api_key_callback() {
$options = get_option( 'myplugin_settings' );
$value = $options['api_key'] ?? '';
echo '<input type="text" name="myplugin_settings[api_key]" value="' . esc_attr( $value ) . '" class="regular-text">';
}
// 修改之前的设置页面回调函数,以输出表单
function myplugin_settings_page() {
?>
<div class="wrap">
<h1>Eklenti ayarlarım.</h1>
<form action="/tr/options.php/" method="post" data-trp-original-action="options.php">
<?php
settings_fields( 'myplugin_settings_group' ); // 输出必要的安全字段
do_settings_sections( 'myplugin-settings' ); // 输出所有设置区域和字段
submit_button(); // 输出提交按钮
?>
<input type="hidden" name="trp-form-language" value="tr"/></form>
</div>
<?php
} Özetle.
WordPress eklenti geliştirme, temel yapıyı anlamaktan başlayarak, çekirdek API’lere ve güvenliğe derinlemesine hakim olmaya ve sonunda tam bir kullanıcı arayüzü oluşturmaya kadar süren bir süreçtir. Önemli olan, WordPress’in kodlama standartlarına ve en iyi uygulamalarına uymaktır; örneğin, etiketlerin (hook’ların) doğru kullanılması, veri güvenliğinin sıkı bir şekilde sağlanması, yerleşik seçenek API’lerinin ve ayar API’lerinin etkin bir şekilde kullanılması gibi. Basit bir eklenti başlık dosyası oluşturarak başlayın, ardından eylemler (actions), filtreler (filters) ve kısa kodlar (shortcodes) ekleyin; veritabanını ve arka plan arayüzünü yönetmeye kadar her adım, WordPress’in güçlü ve stabil yapısının üzerine inşa edilir. Bu adımları sistematik bir şekilde öğrenerek ve uygulayarak, işlevsel, güvenli, güvenilir ve kolayca bakımı yapılabilecek WordPress eklentileri geliştirebilir ve böylece dünya çapındaki geniş WordPress ekosistemine kendi katkınızı sunabilirsiniz.
Sıkça Sorulan Sorular.
WordPress eklentisi geliştirmek için hangi temel bilgilere ihtiyaç vardır?
WordPress eklentisi geliştirmek için PHP programlama dilini bilmek gereklidir; çünkü eklentilerin temel kodları PHP ile yazılır. Aynı zamanda, ön uç arayüzlerin ve etkileşimlerin oluşturulması için HTML, CSS ve JavaScript konularında temel bilgilere sahip olmak önemlidir. En önemlisi, WordPress’in temel kavramlarına aşina olmak gerekir: Eklentilerin çalışma mekanizmaları (Actions ve Filters), döngüler (The Loop), şablon yapıları ve WordPress veritabanı yapısı.
WordPress eklentimizi nasıl hata ayıklarız?
Öncelikle, wp-config.php Dosyada WordPress hata ayıklama modunu etkinleştirin. WP_DEBUG Sabit, olarak ayarlandı. trueBu, PHP hatalarını ve uyarılarını ekranda gösterecektir. İkincisi, bunları kullanmak mümkündür. error_log() Fonksiyon, hata ayıklama bilgilerini sunucunun hata günlüğüne yazar. Ayrıca, Query Monitor gibi profesyonel hata ayıklama eklentilerinin kurulması, veritabanı sorguları, hook işlemleri, betik yüklemeleri gibi ayrıntılı bilgilerin gerçek zamanlı olarak görüntülenmesini sağlar ve bu da geliştirme sürecinde vazgeçilmez araçlardır.
Eklentim nasıl çok dil desteği (uluslararasılaştırma) sağlar?
WordPress, uluslararasılaştırma (i18n) işlemlerini gerçekleştirmek için GNU gettext teknoloji çerçevesini kullanır. Öncelikle, eklenti kodunda çevrilmeye ihtiyaç duyan tüm metinler belirli bir format kullanılarak işaretlenir. () 或 _e() Bu işlem için, ilgili çeviri fonksiyonlarını bir araya getiren bir kapsül (wrapper) oluşturulmalı ve bu kapsülün kullanımı sağlanmalıdır. () Fonksiyon, eklentinin baş kısmında tanımlanan “Text Domain” değerini belirtir. Daha sonra, Poedit gibi araçlar kullanılarak eklentinin kaynak kodu taranır ve gerekli değişiklikler yapılır. .pot Şablon dosyası ve buna dayanarak farklı diller için içeriklerin oluşturulması. .po Ve derlenen .mo Dosyayı, eklentinin bulunduğu yere koyun. /languages/ Katalogda. Son olarak, kullanın. load_plugin_textdomain() Function loading.
WordPress resmi eklenti dizinine eklentimi nasıl gönderebilirim?
Eklentiyi resmi kataloga göndermeden önce, eklenin resmi eklenti geliştirme kurallarına ve kılavuzlarına tamamen uygun olduğundan emin olmanız gerekir. Bir WordPress.org hesabınızın olması gerekmektedir; ardından eklenti gönderim sayfasında gerekli formları doldurmalısınız. İnceleme ekibi, kodun güvenliğini, lisansın (GPL ile uyumlu olması gerekmektedir), kod kalitesini, dokümantasyonu ve uyumluluğu kontrol edecektir. İncelemeden geçtikten sonra bir SVN deposu adresi alacaksınız ve kodu SVN aracılığıyla gönderdikten sonra eklenti resmi katalogda yer alacaktır. Bu süreç birkaç hafta sürebilir ve ayrıntılı inceleme kriterleri bulunmaktadı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.
- Web Sitesi Kurma Kılavuzu: Fikirden Hayata Taşıma Süreci ve Temel Teknolojilerin Ayrıntılı Analizi
- Neden WordPress’ü web sitesi için tercih edilen platform olarak seçtiniz?
- WordPress Temel Başlangıç Kılavuzu: Sıfırdan İlk Profesyonel Web Sitenizi Oluşturun
- Kurumsal Web Sitesi Kurma için Tek Duraklı Çözüm: Sıfırdan Hayata Geçişe Kadar Tam Uygulama Kılavuzu
- Önsöz: Neden WordPress ile geliştirme yapmayı seçtik?