Sıfırdan WordPress Eklentisi Oluştururken Dikkat Edilmesi Gerekenler
Yayınlanan: 2022-01-02Bir WordPress Eklentisi, aslında bir WordPress sitesinin işlevselliğini genişleten veya geliştiren tek bir dosya veya dosya grubudur.
Her yeni geliştirici “Nasıl Kodlanır?” bilir, ancak WordPress'te bir eklenti oluştururken geliştirici, kod kalitesi, güvenlik ve işlevselliğe ek olarak WordPress eklentisi oluşturmak için bazı temel gereksinimleri hatırlamalıdır.
Bu kılavuz, WordPress eklentilerini sıfırdan oluştururken akılda tutulması gereken önemli adımları açıklamaktadır.
WordPress eklentilerinde, anlaşılması gereken kritik bir şey WordPress Kancalarıdır, örneğin eylemler ve filtreler. Kancalar, eklentilerin WordPress işlevleri içinde belirli zamanlarda tanımlanmış işlevlerle çalışmasına izin verir.
Eylem kancalarının listesi: https://codex.wordpress.org/Plugin_API/Action_Reference
define('WP_DEBUG', doğru); --- WordPress Sürüm 2.3.1'de WP_DEBUG seçeneği eklendi. --- Varsayılan olarak yanlış olduğu varsayılır. Ancak, wp-config.php dosyasında genellikle true olarak ayarlanır.
–> Eklenti klasöründeki yeni oluşturulan dosyamıza eklentiye özel bir bilgi başlığı ekleyin.
/* Eklenti Adı: Referans Gönderi türü Eklenti URI'si: https://wordpress.org/plugins/testimonial-post-type/ Açıklama: Bir Referans gönderi türü oluşturun, bu Taksonomi ve Etiketler'dir. Sürüm: 1.0 Yazar: Elsner Technologies Pvt. Ltd. Yazar URI'si: https://www.elsner.com Metin Alanı: referans-yazı tipi Etki Alanı Yolu: /diller */
İlgili : Elsner'ın Yakın Zamanda Başlatılan WordPress Eklentisi: Gönderiler Kaydırıcı Kısa Kodu
–> Tüm eklentilerin benzersiz işlev adları, tanımları ve sınıf adları olmalıdır.
Bu, eklentinizin diğer eklentiler veya temalarla çakışmasını önler.
–> Ön ek olarak __ (çift alt çizgi), wp_ veya _ (tek alt çizgi) kullanmayın.
Bunlar WordPress'in kendisi için ayrılmıştır. Bunları sınıflarınızda kullanabilirsiniz, ancak tek başına işlev olarak kullanamazsınız.
–> Lütfen eklentinizi Doğrudan dosya erişiminden koruyun.
if ( ! tanımlı( 'ABSPATH' ) ) çıkış; // Doğrudan erişiliyorsa çık
— Bu kodu tüm php dosyalarının en üstüne koyarak doğrudan dosya erişimini önleyebilirsiniz:
–> Yetkisiz erişimi önlemek için lütfen POST çağrılarınıza bir nonce ekleyin.
nonce (bir kez kullanılan sayı)
WordPress nonce'leri sayı değildir, sayı ve harflerden oluşan bir karmadır. Ayrıca yalnızca bir kez kullanılmazlar, ancak sınırlı bir “ömrü” vardır ve bu süre sonunda sona erer.
Normalde post_id 174'ü silen bunun gibi bir url oluştururuz
http://example.com/wp-admin/post.php?post=123&action=trash
Bu url mükemmel, ancak güvenli değil. Bir saldırganın gönderilerin kimliğini bildiğini varsayalım, O zaman saldırgan bu url'ye sahip gönderileri sizin bilginiz olmadan silebilir.
Bir nonce eklemek bunu önleyecektir. Örneğin, bir nonce kullanırken, WordPress'in kullanıcı için oluşturduğu url şöyle görünür:
http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204
$nonce = wp_create_nonce('my-action_trash');— Bu basitçe nonce değerinin kendisini döndürür.
— Bu değer gibi bir URL'ye koyabilirsiniz
action='http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce='.$nonce;
— URL'de iletilen bir nonce'nin doğrulanması
wp_verify_nonce( $_REQUEST['_wpnonce'], 'my-action_trash');İlgili : Eklentinizi WordPress Eklenti Dizinine Nasıl Gönderirsiniz?

–> Lütfen POST çağrılarınızı sterilize edin, kaçın ve doğrulayın
Sanitize : Kullanıcı Girişini Temizleme
Bir güncelleme işlevi veya bir hazırla() çağrısı ile bile, veri tabanına hiçbir zaman ham veri sokulmamalıdır.
Eylem çağrıları veya URL yönlendirmeleri yapmak için kullanıldığında POST verilerinizi sterilize etmek, XSS güvenlik açıkları olasılığını azaltacaktır.
sanitize_text_field($_POST['post_name']);
— Veriler yukarıdaki fonksiyon kullanılarak temizlenebilir.
— Perde arkasında, işlev aşağıda belirtilenleri yapar:
Geçersiz UTF-8 olup olmadığını kontrol eder
Tek < karakterlerini varlığa dönüştürür
Tüm etiketleri şeritler
Satır sonlarını, sekmeleri ve fazladan boşlukları kaldırın
şerit sekizli
— sanitize_*() yardımcı işlevler sınıfı
https://developer.wordpress.org/plugins/security/securing-input/
Doğrulama: Kullanıcı Girişini Kontrol Etme
Sanitasyona ek olarak, tüm aramalarınızı doğrulamanız gerekir. Bir $_POST çağrısının yalnızca bir sayı olması gerekiyorsa, herhangi bir şeyden geçmeden önce bunun bir int() olduğundan emin olun. Veritabanına her veri eklediğinizde, doğru veri olmalıdır.
intval( $_POST['gönder']); --- eğer $_POST['gönder']
sayısal bir değeri varsa, true değerini döndürür. Değilse, o zaman yanlış.
Kaçış: Çıktı Güvenliğini Sağlama
Kaçmak, zaten sahip olduğunuz verileri almak ve bunları son kullanıcı için oluşturmadan önce güvenceye almaktır.
Çıktıdan kaçmak/döküm yapmak, yalnızca herhangi bir belirsizliği ortadan kaldırır ve netliğe katkıda bulunur.
<h4> <?php echo esc_html( $başlık); ?> </h4> --- esc_html()
HTML öğesinin çıktısını aldığımız bir veri bölümünü kapsadığı zamanlarda kullanılmalıdır.
esc_html ( dize $metin )HTML blokları için kaçış.
esc_html_e ( dize $metin )HTML çıktısında güvenli kullanım için çıkış yapılan çevrilmiş metni görüntüleyin.
esc_html__ ( dize $metin )$metnin çevirisini alın ve HTML çıktısında güvenli kullanım için kaçar.
<img alt="" src="<?php echo esc_url( $picture_url ); ?>
--- esc_url()bir HTML öğesinin 'src' ve 'href' niteliklerindekiler de dahil olmak üzere her URL'de kullanılmalıdır.
<?php echo esc_js( $değer ); ?> --- esc_js()
satır içi Javascript için tasarlanmıştır.
<ul class="<?php echo esc_attr( $stored_class ); ?>">
--- esc_attr()HTML öğesinin bir özniteliğine yazdırılan diğer her şeyde kullanılabilir.
Not :-
Klasörlerin nerede olduğunu ve onları en iyi nasıl arayacağınızı anlamak için lütfen aşağıdaki bağlantıyı kontrol edin.
https://codex.wordpress.org/Determining_Plugin_and_Content_Directories
Mümkünse, verileri wp_options tablolarına kaydedin.
Tüm bunların nihai amacı, geçersiz ve güvenli olmayan verilerin işleme alınmamasını veya hiçbir zaman görüntülenmemesini sağlamaktır. Temizle, kontrol et, her şeyden kaç. Ayrıca, kullanıcılara her zaman mantıklı veriler gireceğine asla inanmayın.
İlgili: WordPress Giriş Sayfası Nasıl Özelleştirilir
