Eklenti Geliştirmeye Başlamadan Önce
WordPress eklenti geliştirmeye başlamadan önce, bazı temel bilgileri ve araçları hazırda bulundurmak gereklidir:
– PHP: WordPress PHP dilinde yazılmıştır, bu yüzden PHP bilgisi şarttır.
– MySQL: Veritabanı işlemleri için MySQL bilgisi faydalı olacaktır.
– HTML, CSS, JavaScript: Kullanıcı arayüzü ve etkileşimler için bu teknolojiler gereklidir.
– WordPress API: WordPress’in REST API’si ve diğer API’leri hakkında bilgi sahibi olmak önemlidir.
– Bir geliştirme ortamı: Localhost veya bir sunucu üzerinde WordPress kurulu bir geliştirme ortamı.
Eklenti Yapısı ve Dosyaları
Bir WordPress eklentisinin temel yapısı şu şekildedir:
– Eklenti Klasörü: Eklenti, WordPress’in `wp-content/plugins/` dizini altında bir klasörde yer alır.
– Eklenti Dosyası: `plugin-name.php` şeklinde bir dosya oluşturulur. Bu dosya eklentinin ana dosyasıdır.
– Header Information: Eklenti dosyasının başında, eklenti hakkında bilgiler bulunur. Bu, eklentinin adı, açıklaması, yazarı, versiyonu gibi bilgileri içerir.
“`php
/
Plugin Name: Eklenti Adı
Description: Eklentinin açıklaması
Version: 1.0
Author: Yazar Adı
/
“`
Eklenti Fonksiyonları
Eklenti fonksiyonları, WordPress’in çeşitli aksiyonlarına ve filtrelerine hook’lar ekleyerek çalışır:
– Aksiyonlar: WordPress’in belirli olaylar sonrası çalıştırılan fonksiyonlar. Örneğin, `init` aksiyonu WordPress’in başlatılması sırasında çalışır.
“`php
function plugin_activation() {
// Aktivasyon işlemleri
}
register_activation_hook(__FILE__, ‘plugin_activation’);
“`
– Filtreler: WordPress verilerini değiştirmek veya manipüle etmek için kullanılır. Örneğin, `the_content` filtresi yazı içeriğini değiştirmek için kullanılabilir.
“`php
function modify_content($content) {
return $content . ‘
Eklendi
‘;
}
add_filter(‘the_content’, ‘modify_content’);
“`
Kullanıcı Arayüzü ve Yönetim Paneli
Eklenti, WordPress yönetim paneline yeni menüler, alt menüler ve sayfalar ekleyebilir:
“`php
function register_my_custom_menu_page() {
add_menu_page( ‘Custom Menu Title’, ‘Custom Menu’, ‘manage_options’, ‘myplugin/myplugin-admin.php’, ‘my_plugin_options’, ‘dashicons-admin-generic’, 6 );
}
add_action(‘admin_menu’, ‘register_my_custom_menu_page’);
“`
Veritabanı İşlemleri
Eklenti, veritabanı tabloları oluşturabilir veya mevcut tabloları kullanarak veri ekleyebilir, güncelleyebilir veya silebilir:
“`php
function create_plugin_database_table() {
global $wpdb;
$table_name = $wpdb->prefix . ‘my_plugin_table’;
$charset_collate = $wpdb->get_charset_collate();
$sql = “CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
time datetime DEFAULT ‘0000-00-00 00:00:00’ NOT NULL,
UNIQUE KEY id (id)
) $charset_collate;”;
require_once( ABSPATH . ‘wp-admin/includes/upgrade.php’ );
dbDelta( $sql );
}
register_activation_hook(__FILE__, ‘create_plugin_database_table’);
“`
Eklenti Güvenliği
Güvenlik, WordPress eklenti geliştirmede önemli bir yer tutar:
– Veri Doğrulama: Kullanıcı girdileri her zaman doğrulanmalıdır.
– Erişim Kontrolleri: Yönetici veya editör yetkileri kontrol edilmelidir.
– Nonces: Formlarda ve AJAX işlemlerinde nonce kullanılmalıdır.
“`php
function check_admin_referer() {
if (!check_admin_referer(‘my-nonce-action’, ‘my-nonce-field’)) {
wp_die(‘Invalid nonce.’);
}
}
“`
Hata Ayıklama ve Test
Eklenti geliştirme sürecinde hata ayıklama ve test etme önemlidir:
– WP_DEBUG: `wp-config.php` dosyasında `WP_DEBUG` değişkenini `true` olarak ayarlayarak hata mesajlarını görüntüleyebilirsin.
– PHP Code Sniffer: WordPress coding standards’ına uyumu kontrol etmek için kullanılabilir.
– Unit Test: PHPUnit ile eklentiyi test etmek için WordPress’in test ortamı kullanılabilir.
Eklenti Dağıtımı ve Bakımı
Eklentinin dağıtımı ve bakımı sürecinde:
– WordPress Eklenti Deposu: Eklentiyi WordPress Eklenti Deposu’na yükleyerek geniş bir kullanıcı kitlesine ulaşabilirsin.
– Versiyon Kontrolü: Git veya benzeri bir versiyon kontrol sistemi kullanarak eklenti kodunu yönetmek önemlidir.
– Dokümantasyon: Eklentinin kullanımı ve geliştirilmesi için dokümantasyon sağlamak kullanıcılar ve diğer geliştiriciler için faydalı olacaktır.
WordPress eklenti geliştirme, yaratıcılık ve teknik bilgi gerektiren bir süreçtir. Bu süreç, kullanıcıların ihtiyaçlarını karşılamak ve WordPress ekosistemine katkıda bulunmak için değerli bir yoldur.