WordPress üçün bir Widget Plugini necə yaratmaq olar

WordPress, widget kimi bir çox əla xüsusiyyətləri olan inanılmaz Məzmun İdarəetmə Sistemidir. Bu dərslikdə kiçik bir plugin içərisində öz vidjetlərinizi necə yaratmağı sizə izah edəcəyəm. Bu yazı, widgetın özünü yaratmadan əvvəl başa düşməli olduğunuz bəzi əlavə məqamları əhatə edəcəkdir. Bura gedirik!


Addım 1: Widget Plugininizi yaradın

Bu yaxınlarda “Freelancer Widgets Bundle” adlı bir plugin yaratdım və bəzi insanlar məndən necə bir plugin yaratmağı xahiş etdilər və bu yazını yazmaq qərarına gəldim. İlk addım plaginin yaradılmasıdır. Gördüyünüz kimi, bu çətin hissə deyil. Bir plugin onu aktivləşdirdiyiniz zaman WordPress-ə əlavə olunmuş əlavə bir koddur. WordPress, bütün mövcud pluginləri çıxarmaq və arxa ofisdə siyahıya salmaq üçün bir qovluq vasitəsilə bir döngə yaradır. Plugininizi yaratmaq üçün Coda (Mac) və ya Dreamweaver (PC & Mac) kimi bir redaktora ehtiyacınız olacaq. Plugininizi yerli WordPress-də quraşdırmağı məsləhət görürəm, onu canlı bir serverdə etmək bir səhv etsəniz bəzi problemlərə səbəb ola bilər. Xahiş edirəm, hosting yerləşdirmədən əvvəl plaginimizi sınamaq üçün gözləyin.

İndi qovluğu açın wp-content / plugins. Plugininizi əlavə edəcəyiniz yer budur. Yeni bir qovluq yaradın və onu “widget-plugin” adlandırın (əslində bu ad istədiyiniz ola bilər). Pluginimizdə yalnız bir fayl olacaqsa da, hər bir plugin üçün bir qovluq istifadə etmək daha yaxşıdır. Kataloqunuzda “widget-plugin.php” adlı yeni bir fayl yaradın (bu ad da dəyişdirilə bilər) və açın. Artıq kodun ilk sətirlərini əlavə etmək fikrindəyik. WordPress altında bir plugin tərifi oxuya biləcəyiniz bəzi qaydalara uyğundur burada kodeksdə. Budur, WordPress bir plagini necə təyin edir:

Beləliklə, bu kodu ehtiyaclarımıza uyğunlaşdırmaq üçün dəyişdirməliyik:

Faylınızı qeyd edin. Yalnız widget-plugin.php faylımıza kodu əlavə etməklə biz bir plugin yaratdıq! Düzdü, indi plugin heç nə etmir, amma WordPress bunu tanıyır. Bu vəziyyətdə olduğundan əmin olmaq üçün rəhbərliyinizə gedin və "Plugins" menyusuna daxil olun. Plugin plaginlər siyahısında görünsə yaxşısınız, əks halda təlimatlarıma əməl etdiyinizdən əmin olun və yenidən cəhd edin. İndi plagini aktivləşdirə bilərsiniz.

Addım 2: Widget yaradın

Artıq widgetın özünü yaradacağıq. Bu widget əsas WordPress sinifini uzadan bir PHP sinfi olacaqdır WP_Widget. Əsasən, widgetımız bu şəkildə müəyyənləşdiriləcək:

// Widget sinfi
sinif My_Custom_Widget WP_Widget {genişləndirir

// Baş konstruktor
ictimai funksiya __konstruksiya () {
/ * ... * /
}

// Widget forması (arxa tərəf üçün)
ictimai funksiya forması ($ instansiya) {
/ * ... * /
}

// Widget parametrlərini yeniləyin
ictimai funksiya yeniləməsi ($ new_instance, $ old_instance) {
/ * ... * /
}

// Vidjeti göstərin
ictimai funksiya vidjeti ($ args, $ example) {
/ * ... * /
}

}

// Widjeti qeyd edin
my_register_custom_widget () {funksiyası
register_widget ('My_Custom_Widget');
}
add_action ('widgets_init', 'my_register_custom_widget');

Bu kod WordPress-ə sistemin widgetdan istifadə edə bilməsi üçün lazım olan bütün məlumatları verir:

  1. The konstruktor, widgetı işə salmaq
  2. The forma () funksiyası idarədə widget formasını yaratmaq
  3. The yeniləmə () funksiyası, nəşr zamanı widget məlumatlarını saxlamaq üçün
  4. Və widget () funksiyası ön hissədə widget məzmunu göstərmək üçün

1 - Konstruktor

Konstruktor, widget adını və əsas dəlilləri müəyyən edən kod hissəsidir, aşağıda görünə biləcəyiniz bir nümunədir.

// Baş konstruktor
ictimai funksiya __konstruksiya () {
valideyn :: __ qurmaq (
'mənim_custom_widget',
__ ('Xüsusi Widget', 'text_domain'),
serial (
'customize_selective_refresh' => doğrudur,
)
);
}

Zəhmət olmasa, widget adı ətrafında __ () istifadə edilmir, bu funksiya WordPress tərəfindən tərcümə üçün istifadə olunur. Həqiqətən hər zaman istifadə etməyi məsləhət görürəm bu funksiyaları, mövzunu tam tərcümə etmək üçün. Və 'customize_selective_refresh' parametrinin istifadəsi widgetın altına yenilənməyə imkan verir Görünüş> Fərdiləşdirin widgetı redaktə edərkən, bütün səhifəni yeniləmək əvəzinə dəyişiklik edərkən yalnız widget yenilənir.

2 - Form () funksiyası

Bu funksiya WordPress idarəetmə sahəsində (Görünüş> Vidjetlər və ya Görünüş> Özəlləşdirmə> Widgetlər daxilində) widget forması parametrlərini yaradan biridir. Veb saytında göstərilmək üçün məlumatlarınızı daxil edərdiniz. Beləliklə, widget forma parametrlərinizə necə mətn sahələri, mətn sahələri əlavə edə biləcəyinizi, qutuları və onay qutularını necə əlavə edə biləcəyinizi izah edəcəyəm.

// Widget forması (arxa tərəf üçün)
ictimai funksiya forması ($ instansiya) {

// Widget defoltlarını təyin edin
$ defoltlar = array (
'title' => '',
'text' => '',
'textarea' => '',
'onay qutusu' => '',
'seçin' => '',
);

// Cari parametrləri defoltlarla təhlil edin
çıxarış (wp_parse_args ((array) $ misal, $ defoltlar)); ?>


/>

Bu kod sadəcə widgeta 5 sahə əlavə edir (Başlıq, mətn, mətn, seçim və işaret qutusu). Beləliklə, əvvəlcə widgetınız üçün defoltları təyin edirsiniz, sonra növbəti funksiya, widget üçün müəyyən edilmiş / saxlanılan cari parametrləri defoltlarla təhlil edir (buna görə mövcud olmayan hər hansı bir parametr, ilk növbədə bir widget əlavə etdiyiniz kimi, u mənim parametrlərə qayıdacaqdır) yan çubuğunuz). Və sonuncusu hər sahə üçün html-dir. Forma sahələrini əlavə edərkən esc_attr () istifadə olunmasına diqqət yetirin, bu təhlükəsizlik baxımından edilir. Saytınızda bir istifadəçi tərəfindən təyin olunan dəyişəni əks etdirdiyiniz zaman ilk dəfə sanitariya vəziyyətinə gətirildiyini yoxlamalısınız.

3 - Yeniləmə () funksiyası

Yeniləmə () funksiyası həqiqətən sadədir. WordPress əsas inkişaf etdiriciləri həqiqətən güclü bir widget API əlavə etdikləri üçün hər sahəni yeniləmək üçün yalnız bu kodu əlavə etməliyik:

// Widget parametrlərini yeniləyin
ictimai funksiya yeniləməsi ($ new_instance, $ old_instance) {
$ misal = $ köhnə_istansiya;
$ instansiya ['title'] = isset ($ new_instance ['title'])? wp_strip_all_tags ($ new_instance ['title']): '';
$ instansiya ['text'] = isset ($ new_instance ['text'])? wp_strip_all_tags ($ new_instance ['text']): '';
$ instansiya ['textarea'] = isset ($ new_instance ['textarea'])? wp_kses_post ($ new_instance ['textarea']): '';
$ instansiya ['checkbox'] = isset ($ new_instance ['onay qutusu'])? 1: yalan;
$ Məsələn ['seçin'] = isset ($ new_instance ['select'])? wp_strip_all_tags ($ new_instance ['select']): '';
qaytarılması $ misal;
}

Gördüyünüz kimi, etməli olduğumuz hər bir parametr üçün yoxlanılır və boş deyilsə onu verilənlər bazasına daxil edin. Wp_strip_all_tags () və wp_kses_post () funksiyalarının istifadəsinə diqqət yetirin, bunlar verilənlər bazasına əlavə edilməmişdən əvvəl məlumatları təmizləmək üçün istifadə olunur. Hər hansı bir istifadəçi təqdim edilmiş məzmunu verilənlər bazasına daxil edərkən hər hansı bir zərərli kodun olmadığından əmin olmalısınız. Birinci funksiya wp_strip_all_tags əsas mətndən başqa hər şeyi silinir, beləliklə son dəyəri bir simli olan hər hansı bir sahə üçün istifadə edə bilərsiniz, ikinci funksiya isə wp_kses_post () yazı məzmunu üçün istifadə olunan eyni funksiyadır və bağlantılar kimi əsas html-dən başqa bütün etiketləri də silir. , spans, divs, şəkillər və s.

4 - Widget () funksiyası

Widget () funksiyası veb saytdakı məzmunu çıxaracaqdır. Qonaqlar görəcəklər. Bu funksiya CSS dərslərini və tema ekranınıza mükəmməl uyğunlaşmaq üçün xüsusi etiketləri daxil etmək üçün düzəldilə bilər. Budur kodu (bu kodun ehtiyaclarınıza uyğun olaraq asanlıqla dəyişdirilə biləcəyini xahiş etməyin):

// Vidjeti göstərin
ictimai funksiya vidjeti ($ args, $ example) {

çıxarış ($ args);

// Widget seçimlərini yoxlayın
$ title = isset ($ instansiya ['title'])? apply_filters ('widget_title', $ nümunə ['başlıq']): '';
$ text = isset ($ instansiya ['text'])? $ misal ['text']: '';
$ textarea = isset ($ instansiya ['textarea'])? $ instansiya '' textarea ']:' ';
$ select = isset ($ Məsələn ['seçin'])? $ misal ['seçin']: '';
$ onay qutusu =! boş ($ nümunə ['onay qutusu'])? $ nümunə ['onay qutusu']: saxta;

// WordPress nüvədən əvvəl_widget çəngəl (həmişə daxil olmaqla)
echo $ before_widget;

// Vidjeti göstərin
echo
'; // Müəyyən olunarsa, widget başlığını göstərin əgər ($ başlıq) { echo $ əvvəl_title. $ başlığı. $ sonra_title; } // Mətn sahəsini göstərin əgər ($ mətn) { echo

'. $ mətni. '

'; } // Textarea sahəsini göstərin əgər ($ textarea) { echo

'. $ mətn. '

'; } // Seçin sahəsi seçin əgər ($ seçin) { echo

'. $ seçin. '

'; } // onay qutusu doğrudursa, bir şey göstərin əgər ($ onay qutusu) { echo

Zəhmli bir şey

'; } echo
'; // WordPress əsas sonra_widget çəngəl (həmişə daxil olmaqla) echo $ after_widget; }

Bu kod mürəkkəb deyil, dəyişmənin təyin olunduğunu yoxlamaq, yoxsa yazdırmaq istəsəniz bir səhv mesajı alacaqsınız.

Tam Widget Plugin Kod

Düzgün izlədiyiniz təqdirdə, plaginiz indi tam işlək olmalıdır və onu ehtiyaclarınıza uyğunlaşdıra bilərsiniz. Təlimata əməl etməmisinizsə və ya kodu iki dəfə yoxlamaq istəyirsinizsə, tam kodu görmək üçün Github səhifəsinə baş çəkə bilərsiniz.

Github-da Tam Koda baxın

Nəticə

Bir plugin içərisində bir widget yaratmaq çox maraqlı olduğunu gördük, indi müxtəlif sahə tipləri olan bir widget olan sadə bir plugin necə yaradılacağını bilməlisiniz və widgetı düzəltmək üçün qabaqcıl üsullardan istifadə edərək bir az daha necə getdiyinizi öyrəndiniz. Təbrik edirəm, inanılmaz bir iş gördünüz!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map