Hazırlık çalışmaları: WordPress eklentilerinin temellerini anlamak
Kod yazmaya başlamadan önce, sağlam bir teorik temel oluşturmak son derece önemlidir. Bir WordPress eklentisi, esasen bir veya daha fazla PHP dosyasından oluşur ve WordPress tarafından sağlanan arayüzler ve işlevler aracılığıyla çalışır.Hook(钩子)Sistemler, WordPress’in temel işlevlerini genişletmek veya değiştirmek için kullanılır. Eklentiler, yalnızca kısa bir kod ekleyecek kadar basit olabileceği gibi, tam bir yönetim arayüzü uygulaması oluşturacak kadar karmaşık da olabilir. Tüm eklentiler belirli bir yerde saklanır./wp-content/plugins/Dizin içinde, her eklentinin kendine ait bir klasörü vardır.
Geliştirme ortamı, çalışma alanınızdır. XAMPP, MAMP veya Local by Flywheel gibi bir yerel sunucu ortamına ihtiyacınız var ve WordPress’i bu sunucuya kurmanız gerekiyor. Bu konuda şiddetle tavsiye edilir.wp-config.phpDosyada etkinleştirildi.WP_DEBUGBu mod, geliştirme sürecinde hataları hızlı bir şekilde tespit etmenize yardımcı olacaktır. Ayrıca, iyi bir kod editörü (örneğin VS Code, PhpStorm) ve geliştirici araçlarına sahip bir modern tarayıcı da şarttır.
İlk eklentiyi oluşturun: Temel yapı ve etkinleştirme
En basit eklentiyi oluşturarak başlayalım; bu eklentinin işlevi, web sitesinin tüm sayfalarının alt kısmına bir telif hakkı bilgisi satırı eklemektir. Bu süreç, eklentilerin temel bileşenlerini anlamanıza yardımcı olacaktır.
Tavsiye edilen okuma WordPress eklenti geliştirmeye başlama kılavuzu: İlk işlevsel uzantınızı sıfırdan oluşturun.。
Öncelikle,/wp-content/plugins/Dizin içinde “” adında yeni bir klasör oluşturun.my-first-pluginBu klasör içinde, genellikle klasörün adıyla aynı olan ana eklenti dosyasını oluşturun:my-first-plugin.phpHer eklentinin standart bir eklenti başlık yorumu olması gerekmektedir; bu, WordPress’in eklenti bilgilerini tanımasının tek yoludur.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习WordPress插件开发的入门插件,将在页面底部添加版权信息。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Dosyayı kaydettikten sonra, WordPress yönetim panelinize giriş yapın ve “Eklentiler” sayfasına gidin. Listede “İlk Eklentim” adında bir eklenti göreceksiniz. “Etkinle” butonuna tıklayın; böylece eklentiniz aktif hale gelir. Ancak şu an için herhangi bir işlem yapmayacaktır.
Çekirdek işlevi gerçekleştirin: İçerik eklemek için hook’lar (düğümler) kullanın.
WordPress’in güçlü yanı, kullanım kolaylığı ve geniş eklenti (plugin) yelpazesidir.Hook(钩子)Sistem, şu şekilde bölünür:Action(动作)和Filter(过滤器)İki tür vardır. Eylem kancaları, belirli zaman noktalarında (örneğin sayfa yüklendikten sonra, makale yayınlandığında) kendi kodunuzu ekleyerek işlevler gerçekleştirmenize olanak tanır. Filtre kancaları ise süreç içinde aktarılan verileri (örneğin makale içeriği, başlık) değiştirmenize imkan tanır.
Sayfanın alt kısmına metin eklemek için kullanmamız gereken şey…wp_footerBu eylem hook’u için, ana eklenti dosyamıza aşağıdaki kodu ekliyoruz:
// 这是一个安全措施,防止直接访问PHP文件
if ( ! defined( 'ABSPATH' ) ) {
exit; // 如果ABSPATH未定义,则退出
}
/**
* 在网站页脚输出自定义HTML内容
*/
function myfp_add_footer_text() {
echo '<div style="text-align: center; padding: 20px; border-top: 1px solid #eee; margin-top: 40px;">'echo '<p>© '. date('Y').' Benim web sitem. Tüm hakları saklıdır. Bu içerik…<strong>İlk eklentim</strong>Oluştur.</p>'echo '</div>';
}
// 将我们的函数挂载到 `wp_footer` 动作钩子上
add_action( 'wp_footer', 'myfp_add_footer_text' ); Bu kod parçasında, öncelikle bir fonksiyon tanımladık.myfp_add_footer_text()İşlevi, bir HTML kod parçası çıkarmaktır. Daha sonra, bunu kullanıyoruz.add_action()Bu fonksiyon, özel olarak oluşturulan bu fonksiyonu belirli bir yere “monte eder” (yani o yere ekler veya o fonksiyonun kullanılmasını sağlar).wp_footerBu kancada. Bu, WordPress her çalıştığında…wp_footerKonumlandırıldığında (genellikle konunun içinde yer alır)footer.phpDosyada belirtilen kurallar uygulandığında, fonksiyonumuz otomatik olarak çağrılır ve böylece sayfanın alt kısmında tanımladığımız telif hakkı bilgileri görüntülenir.
Tavsiye edilen okuma Sıfırdan başlamak: WordPress eklenti geliştirme tam rehberi ve en iyi uygulamaların paylaşılması.。
İleri Seviye Özellikler: Yönetim Sayfaları ve Kısa Kodların Oluşturulması
İyi özelliklere sahip bir eklenti genellikle yönetici ile etkileşim gerektirir. Şimdi, eklentiye basit bir yapılandırma sayfası ekleyeceğiz ve bir kısa kod (short code) oluşturacağız.
Yönetim menüsüne ayar sayfası ekleyin.
Kullanacağız.add_menu_page()WordPress arka planındaki sol menüye bir yeni öğe ekleyin. Ana eklenti dosyasını değiştirin ve aşağıdaki kodu ekleyin:
/**
* 注册插件管理菜单
*/
function myfp_add_admin_menu() {
add_menu_page(
'我的第一个插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限
'myfp-settings', // 菜单slug
'myfp_settings_page', // 显示页面内容的回调函数
'dashicons-admin-plugins', // 图标(使用Dashicon)
30 // 菜单位置
);
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );
/**
* 设置页面的HTML内容
*/
function myfp_settings_page() {
// 检查用户权限
if ( !current_user_can( 'manage_options' ) ) {
return;
}
?>
<div class="wrap">
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
<p>“Benim İlk Eklentim”in ayar sayfasına hoş geldiniz. Bu, basit bir yönetim arayüzü örneğidir.</p>
<form action="/tr/options.php/" method="post" data-trp-original-action="options.php">
<?php
// 未来可以在这里添加设置字段
?>
<p>Daha fazla gelişmiş özellik (ayarları kaydetme gibi) sonraki eğitim videolarında anlatılacaktır.</p>
<input type="hidden" name="trp-form-language" value="tr"/></form>
</div>
<?php
} Kaydettikten sonra arka planı yenileyin; sol tarafta “Benim Eklentilerim” adında yeni bir menü öğesi göreceksiniz. Buna tıklayarak az önce oluşturduğumuz boş ayar sayfasına girebilirsiniz.
Bir kısa kod oluşturun ve kaydedin.
Kısa kodlar, kullanıcıların basit komutlar aracılığıyla...[shortcode]Etiketler, makalelerde veya sayfalarda dinamik içerik eklemek için kullanılır. Şimdi, mevcut sunucu saatinin gösterildiği kısa bir kod oluşturalım.
/**
* 短代码处理函数
* @param array $atts 短代码属性
* @param string $content 短代码包裹的内容
* @return string 返回要替换的HTML
*/
function myfp_current_time_shortcode( $atts = [], $content = null ) {
// 设置默认属性并合并用户传入的属性
$atts = shortcode_atts(
array(
'format' => 'Y-m-d H:i:s',
),
$atts,
'current_time'
);
// 根据format属性格式化当前时间
$current_time = date( $atts['format'] );
// 返回输出内容
return '<div class="myfp-time"><strong>Mevcut zaman:</strong> '`. esc_html($current_time)`.'</div>'// Kısa kodu kaydedin: [current_time]
add_shortcode( 'current_time', 'myfp_current_time_shortcode' ); Şimdi, herhangi bir makalede, sayfada veya araç çubuğundaki metin kutusuna girebilirsiniz.[current_time]Varsayılan biçimde zamanı göstermek için kullanılır, veya başka bir amaç için de kullanılabilir.[current_time format="F j, Y"]Özelleştirilmiş biçimde zamanı göstermek için kullanılır. WordPress, otomatik olarak bizim fonksiyonlarımızı çağırır.myfp_current_time_shortcode()Bu kısa kodu işlemek ve değiştirmek için bir fonksiyon kullanılır.
Özetle.
Bu kılavuz sayesinde, sıfırdan başlayarak işlevsel bir WordPress eklentisi oluşturmanın temel adımlarını tamamladınız. Eklentinin temel yapısını, başlık satırındaki yorumların önemini öğrendiniz ve WordPress geliştirmenin merkezini oluşturan “kancalar sistemi”ni (hook system) uyguladınız. Başarıyla…add_action()Web sitesinin ön yüzüne içerik eklendi ve kullanılmaya başlandı.add_menu_page()Yönetim arayüzü oluşturuldu ve kullanılmaya başlandı.add_shortcode()İçerik düzenleyicileri tarafından kullanılabilecek kısa kodlar kaydedildi.
Tavsiye edilen okuma WordPress Eklenti Geliştirme Başlangıç Kılavuzu。
Bu, sadece eklenti geliştirme dünyasının başlangıcıdır. Buradan yola çıkarak, daha karmaşık alanları keşfedebilirsiniz; örneğin: verileri saklamak için veritabanı tabloları oluşturmak, kullanmak...add_settings_section()和add_settings_field()Gerçek seçenek sayfaları oluşturun, form gönderimlerini işleyin, AJAX etkileşimleri ekleyin, özel makale türleri ve kategorileri oluşturun; ayrıca eklentinizi yayınlarken WordPress kodlama standartlarına ve güvenlik en iyi uygulamalarına uyun. Pratik yapmaya ve keşfetmeye devam edin; böylece güçlü ve profesyonel bir WordPress eklentisi geliştirebilirsiniz.
Sıkça Sorulan Sorular.
Bir eklenti kaç dosya içermelidir?
Bir eklenti yalnızca bir ana PHP dosyası içerebilir. Basit eklentiler için bu tamamen yeterlidir. Eklentinin işlevleri karmaşıklaştıkça, kodun netliği ve sürdürülebilirliği açısından farklı işlev modüllerinin (CSS, JavaScript, sınıf tanımı dosyaları vb.) farklı dosyalara ayrılması ve bu modüllerin ana dosya aracılığıyla organize edilerek yüklenmesi önerilir.
Neden eklentim arka plan listedesinde görünmüyor?
Bu genellikle eklentinin baş kısmındaki yorumların formatının doğru olmaması veya dosya yolunun yanlış olmasından kaynaklanır. Lütfen eklentinizin ana PHP dosyasının doğrudan ilgili konumda olduğundan emin olun./wp-content/plugins/your-plugin-folder/Dosya, dizinin içinde yer alıyor ve dosyanın en üstündeki yorum bloğunun formatı tamamen doğru. Özellikle…Plugin Name:Bu satır kesinlikle gereklidir. Her şey doğru olduğundan emin olduktan sonra, eklenti sayfasını yenileyin.
Action hook’ları ile filter hook’ları arasındaki fark nedir?
Eylem kancaları, belirli bir zamanda “belirli bir kod parçasını çalıştırmak” için kullanılır ve bir dönüş değeri gerektirmezler. Esas olarak, HTML eklemek, e-posta göndermek gibi ek işlevleri tetiklemek için kullanılırlar. Filtre kancaları ise “belirli bir veriyi değiştirmek” için kullanılır ve bir değer döndürmelidir (genellikle değiştirilmiş girdi değeri). İçerikin çıktısından önce müdahale etmek için kullanılırlar; örneğin, makale başlıklarını değiştirmek, içeriğe bağlantılar eklemek gibi.
Eklenen “hook’ları (bağlantıları veya eklentileri) nasıl güvenli bir şekilde kaldırabilirim?
Bunu kullanabilirsiniz.remove_action()或remove_filter()Bu fonksiyon, daha önce eklenen “hook”ları kaldırmak için kullanılır. Ancak, kaldırma işleminin orijinal ekleme işleminden sonra gerçekleşmesi ve öncelik parametresinin orijinal değerlerle uyumlu olması gerekmektedir.add_action()或add_filter()Öncelikler aynıdır. Genellikle, eklentinin bağlantılarını devre dışı bırakmak veya belirli koşullar altında kaldırma işlemini gerçekleştirmek önerilir.
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.
- 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
- Sıfırdan bire: WordPress'i kullanarak profesyonel bir web sitesi oluşturmanın eksiksiz rehberi ve uygulamalı ipuçları.
- WordPress Eklenti Geliştirme Kılavuzu: Başlangıçtan Uzmanlığa Kadar Profesyonel Eklentiler Oluşturma