WordPress Özel Widget nasıl yapılır – Tam Kılavuz
*** Dikkat *** Widget’ınızı yerel WordPress kurulumunda (veya en azından test sitesinde) oluşturmanızı ve test etmenizi tavsiye ederim. Ayrıca sitenizi ayırmanız gerekir. Bunun nedeni, hataların ölümcül hatalara neden olabilmesi ve sitenizi çökertebilmesidir, böylece kullanıcınız için zahmetlidir. WordPress Widget Dizini Özel WordPress eklentisi, bir eklenti veya widget olsun, ‘Eklentiler’ ve en az bir PHP dosyasında kendi dizine sahip olmalıdır. Öyleyse, bir dizin yaparak başlayalım. İlk olarak ‘WP-Content/Eklentiler’ dizinine (FTP aracılığıyla) işaret eden ve bir klasör oluşturun. İstediğiniz herhangi bir ismi vermekten çekinmeyin. Bizim durumumuzda, bu ‘Fixrunner-Custom-Widget’ olacak.
WP dosyanıza nasıl erişeceğinizi öğrenmek için FTP’nin nasıl kullanılacağına dair kılavuzumuzu okuyun. Bundan sonra, Notepad ++ (veya herhangi bir kod düzenleyicisi) kullanarak bir PHP dosyası oluşturun. Ne istersen adlandırın, ‘.php’ uzantısı ile bittiğinden emin olun. Eklenti dosyamı ‘Fixrunner-Widget-plugin.php’ adını verdim. Bunu eklenti dosyanızda kopyalayıp yapıştırın ve daha sonra düzenleyeceğiz: <? PHP/* Eklenti Adı: Özel Fixrunner Widget URI eklentisi: https://www.fixrunner.com/creating–custom-widget Açıklama: Özel Widget . İşte burada. Sürüm: 1.0 Yazar: Fixrunner URI Yazar: https: //www.fixrunner.com Lisans: GPL2 */Class My_widget WP_WIDGET {// Yapıcı Kamu İşlevleri Sınıfı __Construct () {} // ön uç widget'ında ekran içeriği genel işlevler ($ args, $ örnek) {} // Yönetici widget ekran formunda opsiyon formu alanını görüntüleyin ($ örnek) {} // genel işlev güncelleme seçeneğini kaydedin ($ new_instance, $ eski_instance) { }} // Bir fonksiyon widget işlevi kaydetme my_register_custom_widget () {register_widget ('fixrunner_custom_widget'); } Add_action ('widget_init', 'my_register_custom_widget'); Buna ek olarak, 'Ek CSS' veya tema stili sayfasını düzenlemek yerine daha önce özel WordPress widget'ınızı düzenlemek istiyorsanız, bir CSS dosyasına da ihtiyacınız vardır.
Bu nedenle, bir CSS dosyası oluşturun. Tahmin edebilirsiniz – '.css' uzantısı ile bittiği sürece herhangi bir isim iyidir. Ayrıca, stil sayfasını aşağıdaki kodu kullanarak sıralamanız gerekir (dosya adınıza uyacak şekilde kod bölümünü ayarlayın): wp_enqueue_style ('fr style', eklentiler_url ('fr-style.css', __file__), "; Şimdi bir widget yaparak devam edelim. Widget'ın 5 önemli kısmı vardır:
Başlıklar ve kancalar
__Construct () -class Widget () Ön uçta görüntülenen yapıcı-widget içeriği
Form () – 'Widget' bölümünde görüntülenen widget'ın arka uç formu
Update () – Widget ve seçeneklerin nasıl güncellendiğini belirleyen kısım
Her birinden tek tek geçeceğiz.
Bu başlıklar ve kancalar, diğerleri var olduğu için özel bir WordPress widget sargısı olarak düşünülebilir. Başlık Widget, isimleri, yazarları, açıklamaları, sürümleri ve lisansları tanımladığımız yerdir. Bu bilgiler, WordPress kontrol panelindeki 'Eklenti' bölümünde görülebilir. Aşağıdaki resimde, başlık eklentisinin/widget'ının bir örneğini göreceksiniz.
Her şey başlıkla ilgili. Şimdi kancaya. Kanca dosyanın en alt kısmında bulunur (eklediğiniz): // işlev widget'ını kaydeder my_register_custom_widget () {register_widget ('fixrunner_custom_widget'); } Add_action ('widget_init', 'my_register_custom_widget');
Bu, widget'ı kaydetti ve 'eklenti' bölümünde görüntülenmesine ve etkinleştirilmesine izin verdi. Yukarıdaki talimatları doğru bir şekilde izlerseniz, widget’ınızın ‘Eklenti’ bölümünün altında göründüğünü görürsünüz. Herhangi bir işlevi olmayacak, ancak bunu aşağıdaki bölümde tartışacağız. Sınıf Yapıcı – __Construct (), benzersiz bir widget kimliği, başlık ve seçeneği (değişebilir) tanımlayan kodun bir parçasıdır. Ayrıca, burada kimlik, adlar ve ‘className’, ‘açıklama’, ‘Customize_Sertive_Refresh’ seçeneklerini tanımlarız. İkincisi (Customize_Sertive_Refresh), sayfayı yenilemeden ‘özelleştirici’ (görünüm >> özelleştir) kullanılırken değişikliklerin görülmesine izin verir.
Sınıf Fixrunner_custom_widget Genişleyen wp_widget {// genel işlevlerin ana yapıcısı __construct () {$ widget_ops = array (‘sınıf adı’ => ‘Fixrunner_custom_widget’, ‘açıklama’ => ‘fiixrunner okurları için eklenti.); Ana :: __ Construct (‘Fixrunner_custom_widget’, ‘FixRunner Custom Widget’, $ widget_ops); } ‘Açıklama’ bölümü başlık açıklamasından farklıdır. Bu açıklama görünüm altında görülür >> widget’lar: WordPress widget içeriği özellikle ‘widget ()’ işlevini kullanan bu nedenle, bu WordPress özel widget’ın gerçek ön görünümüdür. Burada yazdıklarınız sitenizde görüntülenecektir. Bu nedenle, bizim durumumuzda, birkaç önemli kod vardır (PHP’ye alışık olmayanlar için), ancak çizginin ne için olduğunu açıklamak için yorum yaptım. Google için ihtiyaç duyabileceğiniz her kod satırını belirtmeyeceğiz: // genel işlevin ($ args, $ örnek) fretend widget bölümünü tanımlayın {if (! İsset ($ args [‘widget_id’]))) {$ args [‘widget_id’] = $ this-> id; } // Başlığı arka uç $ title = (! boş ($ örnek [‘başlık’])) alın. $ örneği [‘başlık’]: __ (‘son yazı’);
$ Title = Applate_filters (‘widget_title’, $ title, $ örnek, $ this-> id_base);// Arka uçtan yayın sayısını alın (değer kümesi yoksa varsayılan 5’dir) $ number = (! Boş ($ örnek [‘sayı’])?Abstt ($ örneği [‘sayı’]): 5;İf (! $ Number) {$ number = 5;} // Alıntı uzunluğunu 10 Custom_Excerpt_Length ($ uzunluk) işleviyle sınırlandırın {10;} add_filter (‘Excerpt_Length’, ‘Custom_excerpt_Length’, 999);// $ args = Array (‘Post_type’ => ‘Post’, ‘Post_status’ => ‘yayın’ argümanını hazırlayın, ‘Posts_per_page’ => $ numara); $ query1 = yeni wp_query ($ args); ?>
<? php / * yazdır widget başlıkları, eğer ayarlanırsa * / if ($ title) {echo '
‘. $ args [‘Önce_title’]. $ başlık. $ args [‘After_title’]. $ featured_img_url = get_the_post_thumbnail_url (); ?> <a href="<?php echo get_permalink();? = "Arka plan-image: url ('’);”> thelength) echo “…”;>
<label for = " get_field_id (‘başlık’); ?> “> <giriş sınıfı = "widefat" id = " get_field_id (‘başlık’); ?> “Name =” get_field_name (‘başlık’); ?> “Type =” text “değer =” ” />
<label for =" get_field_id (‘sayı’); ?> “> “Name =” get_field_name (‘ sayı ‘);?> “Type =” sayı “adım =” 1 ″ dk = “1 ″ değer =” “Boyut =” 3 ” />
<? Php}} Özel WordPress widget seçeneğini güncelleyin – güncelleme () Yani, bu bölüm tam olarak yazıldığı gibi – bu, arka uçta değiştirdiğinizde widget seçeneğini günceller. Widget'ımda 2 seçeneğim olduğundan, ona güvenmek için 2 satır ayarlamam gerekiyor: genel işlev güncellemesi ($ new_instance, $ eski_instance) {$ örnek = $ eski_instance; $ örnek ['başlık' '
] = sendize_text_field ($ new_instance [‘başlık’]); $ örneği [‘numara’] = (int) $ new_instance [‘sayı’]; } Yani, yalnızca bir seçeneğiniz varsa (widget başlığı gibi), yalnızca ilk iki satıra ve başlık satırına ihtiyacınız var ($ örneği [‘başlık’] = saditize_text_field ($ new_instance [‘başlık’]);). Ayrıca, daha fazla seçeneğiniz varsa, her seçenek için satırı belirlemeniz gerekir. CSS’nin bittiğini unutmayın, yukarıdaki talimatlara göre bir CSS dosyası oluşturursanız, yaptığım stili almak için aşağıdaki CSS kod satırını koyabilirsiniz: .FR-Post-Container {genişlik: 235px; Rulman: 5 piksel; Arka Plan-Renk: #EEE; Marj: Otomatik; Min-yükseklik: 85px; sınır dipsi: 1px katı #999; Sınırlar: 10 piksel; Marj-Alt: 5px; Geçiş: Tüm .2s kolaylık; -Webkit-Box-Shadow: 1px 1px 5px 1px RGBA (0.0,0,0.0.75); -Moz-Box-Shadow: 1px 1px 5px 1px RGBA (0.0,0,0.0.75); Kutular: 1px 1px 5px 1px RGBA (0.0,0,0.75);} .FR-Post-Container: Hover {arka plan rengi: #EEE; Değişim: ölçek (1.1);} .fr-Thumb {yüzer: sol; Genişlik: 75 piksel; Yükseklik: 75 piksel; Arka plan boyutu: kapak; Arka plan pozisyonu: orta orta; Ekran: Hat bloklarında; } .fr-tex {genişlik: 150px; Ekran: Hat bloklarında; Yazı tipi boyutu: 11px; Pilding-sol: 5px; yazı tipi ailesi: ‘Times New Roman’;} .fr-metin p {text-align: justify; Marj: 0; arka plan rengi: beyaz; Dolgu: 5px 5px 0px 5px; Renk: #666; Hat yüksekliği: 11px;}. Container-fr {dolgu üstü: 10px; Pilding Alt: 10px; Marj-Alt: 20px;
} Kısacası, her kod satırında neler yapıldığını ayrıntılı olarak açıklamayacağız. Ancak, oldukça kolaydır ve Google’dan çıkmak için yaklaşık 5 dakika sürer. Özel bir WordPress widget’ı test edin (veya aynı widget oluşturmak istediğiniz sürece kesin olarak), WordPress kenar çubuğunuza devam edip widget ekleyebilirsiniz. ‘Görünüm >> widget’ları’ açın ve kenar çubuğu alanınıza ‘Fixrunner özel widget’ı’ ekleyin. Sonuçlar, küçük resim direklerini, WordPress post başlıklarını ve her öğe artışını yönlendirildiğinde artışla alıntılar yapmak için yapılan widget’lar şeklinde olmalıdır: ayrıca, kodlama widget’ları bazı nesne yönelimli programlama yakınlığı ve en azından WordPress döngüleri hakkında bazı bilgiler gerektirir. Şüpheliyseniz Codex WordPress’e danışmalısınız ve şüphe duyacaksınız. Bu konuda yanlış ya da garip bir şey yok. En azından, WordPress’te bir dizin ve eklenti/widget dosyasının nasıl oluşturulacağını biliyorsunuz. Bu çok karmaşık geliyorsa, bizimle iletişime geçebilirsiniz. Sahip olduğunuz WordPress problemini düzelteceğiz. Daha fazla kaynak:
WordPress’e süresi dolmuş başlık nasıl eklenir
ERR_SSL_VERSION_OR_CIPHER_MISMATCH HATA – Nasıl Düzeltilir
WordPress’teki ERR_TOO_MANY_REDIRECTS hataları nasıl düzeltilir