Hazırlık İşlemleri ve Ortam Kurulumu
Kod yazmaya başlamadan önce uygun bir geliştirme ortamına ihtiyacınız vardır. Buna yerel bir WordPress kurulumu ve bir kod editörü dahildir. Yerel bir sunucu ortamı kurmak için XAMPP, Local by Flywheel veya Docker önerilir. En son API'leri ve güvenlik özelliklerini kullanmak için WordPress'in en son sürümüne sahip olduğunuzdan emin olun.
Bir WordPress eklentisinin temel yapısını anlamanız gerekir. Minimal bir eklenti, belirli başlık yorumları içeren bir PHP dosyası olan en az bir ana dosya gerektirir. Bu dosyanın adı genellikle your-plugin-name.phpWordPress'e bunun bir eklenti olduğunu söyler ve ad, açıklama, sürüm ve yazar gibi bilgiler sağlar.
Kod düzenleyicide, eklenti projeniz için yeni bir klasör oluşturun, örn. my-first-pluginAna PHP dosyasını bu klasörde oluşturun. Bu klasörün içinde ana PHP dosyasını oluşturun.
Tavsiye edilen okuma Sıfırdan Başlamak: Uygulamalı Eğitimlerle WordPress Eklentisi Geliştirmeye Yönelik Nihai Kılavuz。
İlk eklenti dosyanızı oluşturun.
Şimdi ellerimizi kirletelim ve eklentinin ana dosyasını oluşturalım. Bu dosya eklentinin giriş noktasıdır ve kendisini WordPress'e en üstteki yorum bloğu aracılığıyla duyurur.
Plugin başlık bilgilerini yazın.
Yeni oluşturduğunuz PHP dosyasına standart eklenti dosyası başlığını eklemeniz gerekir. Örneğin, “Site Selamları” adlı bir eklenti şu şekilde başlayabilir:
<?php
/**
* Plugin Name: 站点问候语
* Plugin URI: https://example.com/my-first-plugin
* Description: 一个简单的插件,用于在网站前台显示自定义问候语。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* Text Domain: my-first-plugin
* Domain Path: /languages
*/ WordPress taramaları wp-content/plugins tüm PHP dosyalarının dizini, bu özel yorum mesajlarını okur ve bunları arka uç eklenti yönetim sayfasında görüntüler. Bunların arasında Text Domain Uluslararasılaştırma için kullanılır.Domain Path Dil dosyasının konumunu belirtir.
Çekirdek işlevsel kodun uygulanması
Başlık bilgilerinin altında, eklentinin işlevselliğini kodlamaya başlayabilirsiniz. Örnek olarak basit bir işlevi ele alalım: site altbilgisinin sol üst köşesinde bir selamlama çıktısı. Tema dosyalarını doğrudan değiştirmekten kaçınmak için WordPress kanca sistemini kullanacağız.
Öncelikle, karşılama mesajının çıktısını almak için bir fonksiyon oluşturmamız gerekiyor. Daha sonra add_action fonksiyonu bu çıktıyı WordPress tarafından gerçekleştirilen bir eyleme bağlar, örneğin wp_footer。
Tavsiye edilen okuma WordPress Eklenti Geliştirme için Eksiksiz Kılavuz: Sıfırdan Raflarda Uygulamaya。
// Selamlama çıktısı için bir fonksiyon tanımlayın
function my_first_plugin_display_greeting() {
echo '<p style="position: fixed; bottom: 10px; left: 10px; background: #f1f1f1; padding: 10px; border-radius: 5px;">Merhaba ve web siteme hoş geldiniz!</p>';
}
// Fonksiyonu wp_footer eylemine bağlamak için add_action kancasını kullanın
add_action( 'wp_footer', 'my_first_plugin_display_greeting' ); Yukarıdaki kodu tamamladıktan sonra, bu eklenti klasörünü (örn. my-first-plugin) Tümünü WordPress kurulum dizininize kopyalayın wp-content/plugins/ yolunu izleyin. Ardından, WordPress arka ucuna giriş yapın, “Eklentiler” menüsüne gidin, “Site Selamlamaları” eklentisini görmelisiniz, “Etkinleştir ”e tıklayın. Şimdi, sitenizin ön ucunu ziyaret edin ve sayfanın altında özelleştirilmiş karşılama mesajını göreceksiniz.
Eklentilere Yönetici Seçenekleri Ekleme
Tamamen işlevsel bir eklenti genellikle yöneticilerin WordPress arka ucunda ayarlar yapmasına olanak tanıyan bir yapılandırma sayfası gerektirir. Bu, bir yönetici menüsü ve seçenek işleme mantığı oluşturmayı içerir.
Eklenti ayarları sayfası oluşturma
WordPress, eklentilere ayar sayfaları eklemek için işlevler sağlar. Tipik olarak şunu kullanırız add_options_page 或 add_menu_page Bu sayfayı arka uç menüsüne eklemek için vb. Aşağıdaki örnekte ana “Ayarlar” menüsüne basit bir ayarlar alt sayfasının nasıl ekleneceği gösterilmektedir.
İlk olarak, ayarlar sayfasının HTML içeriğini oluşturmak için bir fonksiyon oluşturun.
// Eklenti ayarları sayfasını oluşturan fonksiyon
function my_first_plugin_settings_page() {
? >
<div class="wrap">
<h1>Site Karşılama Ayarları</h1>
<form method="post" action="/tr/options.php/" data-trp-original-action="options.php">
<?php
settings_fields( 'my_first_plugin_settings_group' );
do_settings_sections( 'my-first-plugin' );
submit_button();
?>
<input type="hidden" name="trp-form-language" value="tr"/></form>
</div>
<?php
} Ardından, kullanın. add_action Kancalar… admin_menu Bu sayfaya kaydolmak için sahne.
// 将设置页面添加到后台菜单
function my_first_plugin_add_admin_menu() {
add_options_page(
'问候语设置', // 页面标题
'站点问候语', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单别名
'my_first_plugin_settings_page' // 渲染函数
);
}
add_action( 'admin_menu', 'my_first_plugin_add_admin_menu' ); Kayıt Kurulum Alanları ve Veri Saklama
Bir sayfaya sahip olmak yeterli değildir, belirli ayar alanlarını (örneğin giriş kutuları, seçim kutuları) tanımlamamız ve verilerin kaydedilmesini sağlamamız gerekir. Bu, WordPress Ayarlar API'si kullanılarak yapılır register_setting、add_settings_section 和 add_settings_field Ve diğer fonksiyonlar.
Tavsiye edilen okuma Sıfırdan Bire: WordPress Eklenti Geliştirme ve Uygulamalı Öğreticiler için Kesin Kılavuz。
Aşağıdaki kod, kullanıcının karşılama mesajının içeriğini özelleştirmesine izin vermek için kullanılan bir ayar grubu ve bir metin alanı kaydeder.
// 初始化插件的设置
function my_first_plugin_settings_init() {
// 注册一个设置,将其保存到 `options` 表的 `my_first_plugin_greeting_text` 字段中
register_setting( 'my_first_plugin_settings_group', 'my_first_plugin_greeting_text' );
// 在页面中添加一个设置区域
add_settings_section(
'my_first_plugin_section',
'自定义问候语',
null,
'my-first-plugin'
);
// 在设置区域中添加一个文本字段
add_settings_field(
'my_first_plugin_field',
'问候语文本',
'my_first_plugin_field_render',
'my-first-plugin',
'my_first_plugin_section'
);
}
add_action( 'admin_init', 'my_first_plugin_settings_init' );
// 渲染文本输入框的函数
function my_first_plugin_field_render() {
$option = get_option( 'my_first_plugin_greeting_text', '你好,欢迎来到我的网站!' );
echo '<input type="text" name="my_first_plugin_greeting_text" value="' . esc_attr( $option ) . '" style="width: 300px;" />';
} Son olarak, daha önce selamlama çıktısı veren fonksiyonu, kullanıcının kayıtlı ayarlarını veritabanından okuyacak şekilde değiştirmemiz gerekiyor.
function my_first_plugin_display_greeting() {
$ebrik_metni = get_option( 'my_first_plugin_greeting_text', 'Merhaba ve siteme hoş geldiniz! );
echo '<p style="position: fixed; bottom: 10px; left: 10px; background: #f1f1f1; padding: 10px; border-radius: 5px;">' . esc_html( $ebrik_metni ) . '</p>';
} Eklenti güvenliği ve en iyi uygulamalar.
Eklentileri geliştirirken güvenlik öncelikli bir husustur. Güvensiz kod, web sitenize saldırı yapılmasına neden olabilir. İşte bazı temel güvenlik yönergeleri.
Veri doğrulama ve temizleme
Kullanıcı girdisinden (örn. $_POST, $_GET) veya bir veritabanından veri aldığınız her zaman, bu verilerin güvenilmez olduğunu varsaymalısınız. Tarayıcıya gönderilmeden veya veritabanına kaydedilmeden önce doğrulanmalı ve temizlenmelidir.
HTML sayfalarına çıktı almak için esc_html()、esc_attr() 或 wp_kses_post() ve diğer işlevler siteler arası komut dosyası saldırılarını önlemek için es geçilmiştir.
Veritabanı sorgularında kullanılan değişkenler için önceden derlenmiş deyimleri veya aşağıdaki gibi bir deyimi kullanmalısınız $wpdb->prepare() Böyle bir yaklaşım.
Örneğimizde, ayarları kaydederken WordPress register_setting Fonksiyon bazı temel temizlikleri otomatik olarak yapar. Çıktıda, şunu kullanırız esc_html() karşılama metnindeki HTML etiketlerinin normal metin olarak güvenli bir şekilde öncelenmesini sağlamak için.
İzin denetimi ile nonce kullanma
Bir yönetim sayfasından form gönderimi işlenirken, talebin meşruiyeti doğrulanmalıdır. Bu, kullanıcı izinlerini kontrol etmeyi ve rastgele sayıları doğrulamayı içerir.
Ayarlar sayfasındaki formdasettings_fields() işlevi zaten otomatik olarak non-ce doğrulamasını içerir. Ancak, özel AJAX işlemleri veya standart olmayan formlar oluşturursanız, bunları manuel olarak doğrulamanız gerekir. Bu genellikle şu şekilde yapılır current_user_can() İzinleri kontrol etmek için check_admin_referer() 或 wp_verify_nonce() Rastgele sayıları doğrulayın.
Örneğin, özel bir commit işleyici işlevinde:
function my_plugin_handle_form_submit() {
// 检查权限
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( '权限不足' );
}
// 验证随机数
if ( ! isset( $_POST['my_nonce_field'] ) || ! wp_verify_nonce( $_POST['my_nonce_field'], 'my_action' ) ) {
wp_die( '安全校验失败' );
}
// ... 处理安全的数据 ...
} Özetle.
Bu kılavuzla, basit bir PHP dosyasından arka uç yönetim özelliklerine sahip bir WordPress eklentisine kadar tüm geliştirme sürecini tamamladınız. Eklentinin temel yapısını, işlevsellik eklemek için eylem kancalarının nasıl kullanılacağını, WordPress Ayarları API'sini kullanarak yapılandırılabilir seçenek sayfalarının nasıl oluşturulacağını ve çok önemli güvenlik uygulamalarını öğrendiniz. Unutmayın, harika eklentiler yalnızca güçlü olmakla kalmaz, aynı zamanda açık bir koda sahip olmaları, güvenli ve emniyetli olmaları ve WordPress kodlama standartlarını takip etmeleri gerekir. Bu küçük eklentiden kısa kodlar, widget'lar, özel yazı türleri gibi daha gelişmiş özellikleri keşfetmeye devam edebilir ve zaman içinde daha karmaşık uzantılar oluşturabilirsiniz.
Sıkça Sorulan Sorular.
Eklentiye çoklu dil desteğini nasıl ekleyebilirim?
Eklentiye uluslararasılaştırma (i18n) desteği eklemek temel olarak metin alanlarını ve çeviri işlevlerini kullanmayı içerir. İlk olarak, eklenti dosyası başlığının şu şekilde düzgün ayarlandığından emin olun Text Domain 和 Domain Path. Kodda, çevrilmesi gereken tüm dizeler __() 或 _e() ve diğer işlevleri kullanabilirsiniz. Ardından, Poedit gibi bir araç kullanarak bir POT şablon dosyası oluşturun ve ilgili .mo ve .po çeviri dosyalarını oluşturarak bunları eklenti tarafından belirtilen dil dizinine yerleştirin.
Örnek:echo esc_html( __( ‘Hello, World!’, ‘my-first-plugin’ ) );. Bir kullanıcı uygun dile geçtiğinde, WordPress otomatik olarak ilgili çeviri dosyasını yükler.
Eklentilerdeki işlev adları diğer eklentilerle çakışmayı nasıl önler?
İşlev adı çakışmalarını önlemek için en iyi uygulama ad alanlarını kullanmak (PHP 5.3+) veya tüm işlevlere, sınıflara ve sabitlere benzersiz ön ekler eklemektir. Önek kullanılacak kadar benzersiz olmalıdır, genellikle eklenti adının veya tam adın kısaltmasıdır.
Örneğin, şunları kullanmayın display_greeting()Bunun yerine, kullanılmalıdırlar my_first_plugin_display_greeting()PHP ad alanlarını kullanıyorsanız, bunları dosyanın en üstünde bildirebilirsiniz. PHP isim alanlarını kullanıyorsanız, bunları dosyanızın en üstünde şu şekilde bildirebilirsiniz namespace MyFirstPlugin;daha sonra dahili olarak kısa işlev adlarını kullanır ve harici olarak çağrıldığında ad alanları aracılığıyla çözümlenir.
Eklentiyi geliştirdikten sonra resmi katalogda nasıl yayınlayabilirim?
Eklentiyi resmi WordPress.org dizininde yayınlamak için öncelikle WordPress.org'da bir hesap oluşturmanız ve eklentiyi göndermeniz gerekir. Süreç, kodun GPL lisansına uygun olmasını, PHPCS standart kontrolünü geçmesini, bir readme.txt dosyasının hazır olmasını (belirli bir formatı izleyerek) ve net ekran görüntüleri ve belgeler sağlamayı içerir. Gönderimden sonra, bir hakem kod incelemesi yapacak ve geçtiğinde eklentiyi yayınlayacaktır. Yayınlandıktan sonra, kullanıcılar eklentinizi doğrudan WordPress arka ucundan arayabilir ve yükleyebilir.
Eklenti eski WordPress sürümleriyle geriye dönük olarak nasıl uyumludur?
Geriye dönük uyumluluğu korumak için, geliştirme sırasında mevcut WordPress sürümünü kontrol edin ve API'nin yeni sürümüne bağlı olan kodu sarmak için koşullu ifadeler kullanın. Ayrıca, kullanımdan kaldırılmış işlevleri kullanmaktan kaçının ve bunları kullanmanız gerekiyorsa, yedek bir alternatifiniz olduğundan emin olun. Eklentinin readme.txt dosyasında, eklentinin gerektirdiği minimum WordPress sürümünü açıkça belirtin ve kullanıcılara net ipuçları verin. Eklentinin eski ortamlarda nasıl çalıştığını düzenli olarak test etmek uyumluluğu sürdürmenin anahtarıdı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.
- 2026'da web sitesi performansını ve güvenliğini artırmak için kurulması gereken en iyi 10 WordPress eklentisi önerisi.
- 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:
- WooCommerce Eklenti Yapılandırması ve Kullanım Rehberi: Sıfırdan Bir E-Ticaret Sitesi Kurmak