WordPress е невероятна система за управление на съдържанието с много страхотни функции като джунджурии. В този урок ще ви обясня как да създадете свои собствени джунджурии в малък плъгин. Тази публикация ще обхване някои допълнителни точки, които трябва да разберете, преди да създадете самата джаджа. Ето ни!
Contents
Стъпка 1: Създайте своя приставка за джаджа
Наскоро създадох плъгин, наречен „Свободен пакет джаджи“ и някои хора ме попитаха как да създам такъв плъгин, затова реших да напиша този пост. Първата стъпка е създаването на приставката. И както ще видите, това не е най-трудната част. Плъгинът е допълнителен код, добавен към WordPress, след като го активирате. WordPress създава цикъл през папка, за да извлече всички налични приставки и да ги изброи в задния офис. За да създадете своя плъгин, ще ви е необходим редактор като Coda (Mac) или Dreamweaver (PC & Mac). Препоръчвам ви да създадете своя плъгин в локална инсталация на WordPress, превръщането му на жив сървър може да доведе до някои проблеми, ако направите грешка. Затова, моля, изчакайте да тестваме нашия плъгин, преди да поставите на него вашия хостинг.
Отворете сега папката wp-content / плъгини. Тук ще добавите своя плъгин. Създайте нова директория и я наречете „widget-plugin“ (всъщност това име може да бъде каквото искате). Дори ако нашата приставка ще има само един единствен файл, винаги е по-добре да използвате папка за всеки плъгин. В своята директория създайте нов файл, наречен „widget-plugin.php“ (това име може да бъде променено също) и го отворете. Сега сме на път да добавим първите си редове с код. Дефиницията на приставка под WordPress следва някои правила, които можете да прочетете тук на кодекса. Ето как WordPress определя приставката:
Така че, ние трябва да променим този код, за да го приспособи към нашите нужди:
Запазете файла си. Чрез добавяне на код към нашия файл на widget-plugin.php ние създадохме приставка! Е, засега приставката не прави нищо, но WordPress го разпознава. За да сте сигурни, че е така, отидете на администрацията си и отидете в менюто „Приставки“. Ако вашата приставка се появи в списъка с плъгини, вие сте добри, в противен случай се уверете, че следвате инструкциите ми и опитайте отново. Вече можете да активирате приставката.
Стъпка 2: Създайте джаджа
Сега ще създадем самата джаджа. Тази джаджа ще бъде PHP клас, разширяващ основния клас WordPress WP_Widget. По принцип нашата джаджа ще бъде дефинирана по този начин:
// Класът на джаджата
клас My_Custom_Widget разширява WP_Widget {
// Основен конструктор
обществена функция __construct () {
/ * ... * /
}
// Формата на джаджата (за бекенда)
формуляр за публична функция ($ екземпляр) {
/ * ... * /
}
// Актуализиране на настройките на джаджите
актуализация на публичните функции ($ new_instance, $ old_instance) {
/ * ... * /
}
// Показване на джаджа
джаджа за обществена функция ($ args, $ instance) {
/ * ... * /
}
}
// Регистрирайте приспособлението
функция my_register_custom_widget () {
register_widget („My_Custom_Widget“);
}
добавяне ('widgets_init', 'my_register_custom_widget');
Този код дава на WordPress цялата информация, от която системата се нуждае, за да може да използва джаджа:
- Най- конструктор, за иницииране на джаджа
- Най- функция () функция за да създадете формата на приспособления в администрацията
- Най- актуализация () функция, за да запишете данни на джунджурии по време на изданието
- И на функция на джаджа () за да се покаже съдържанието на джаджата в предния край
1 - Конструкторът
Конструкторът е частта от кода, която определя името на джаджата и основните аргументи, по-долу е пример за това как може да изглежда.
// Основен конструктор
обществена функция __construct () {
майка :: __ конструкт (
"My_custom_widget",
__ („Моята персонализирана джаджа“, „text_domain“),
масив (
'customize_selective_refresh' => true,
)
);
}
Моля, не използвайте __ () около името на джаджа, тази функция се използва от WordPress за превод. Наистина ви препоръчвам винаги да използвате тези функции, за да направите темата си напълно преводима. И използването на параметъра „customize_selective_refresh“ позволява приспособлението да се опресни под Външен вид> Персонализирайте когато редактирате джаджа, така че вместо да опреснявате цялата страница, само джаджата се обновява при извършване на промени.
2 - Функцията form ()
Тази функция е тази, която създава настройките на формата на джунджурии в администраторската област на WordPress (или под Външен вид> Виджети или Външен вид> Персонализиране> Джаджи). Това е, ако ще въведете данните си, за да бъдат показани на уебсайта. Така че ще обясня как можете да добавите текстови полета, текстови области, да изберете квадратчета и квадратчета за отметки към настройките на формата си за джунджурии.
// Формата на джаджата (за бекенда)
формуляр за публична функция ($ екземпляр) {
// Задаване по подразбиране на джаджа
$ defaults = масив (
'заглавие' => '',
'текст' => '',
'textarea' => '',
'checkbox' => '',
'select' => '',
);
// Разбор на текущите настройки с по подразбиране
извлечение (wp_parse_args ((масив) $ екземпляр, $ по подразбиране)); ?>
/>
Този код е просто добавяне на 5 полета към джаджа (заглавие, текст, текстови области, отметка и квадратче за отметка). Така че първо определете настройките по подразбиране за своя джаджа, а след това следващата функция анализира текущите настройки, дефинирани / запазени за вашия джаджа, с настройките по подразбиране (така че всички настройки, които не съществуват, ще се върнат по подразбиране, например, когато за първи път добавите приспособление към страничната ви лента). И последно е HTML за всяко поле. Забележете използването на esc_attr () при добавяне на полетата на формуляра, това се прави от съображения за сигурност. Всеки път, когато повтаряте потребителска променлива на вашия сайт, трябва да сте сигурни, че първо е дезинфекцирана.
3 - Функцията update ()
Функцията update () е наистина проста. Тъй като основните разработчици на WordPress добавиха наистина мощен API на джаджи, ние трябва само да добавим този код, за да актуализираме всяко поле:
// Актуализиране на настройките на джаджите
актуализация на публичните функции ($ new_instance, $ old_instance) {
$ instance = $ old_instance;
$ instance ['title'] = isset ($ new_instance ['title'])? wp_strip_all_tags ($ new_instance ['title']): '';
$ instance ['text'] = isset ($ new_instance ['text'])? wp_strip_all_tags ($ new_instance ['text']): '';
$ instance ['textarea'] = isset ($ new_instance ['textarea'])? wp_kses_post ($ new_instance ['textarea']): '';
$ instance ['checkbox'] = isset ($ new_instance ['checkbox'])? 1: невярно;
$ instance ['select'] = isset ($ new_instance ['select'])? wp_strip_all_tags ($ new_instance ['select']): '';
върнете $ екземпляр;
}
Както можете да видите, всичко, което трябва да направим, е да проверим всяка настройка и ако не е празна, запазете я в базата данни. Забележете използването на функциите wp_strip_all_tags () и wp_kses_post (), които се използват за саниране на данните, преди да бъдат добавени в базата данни. Всеки път, когато вмъквате В базата данни ВСЕКИ потребител, изпратен в базата данни, трябва да сте сигурни, че няма злонамерен код. Първата функция wp_strip_all_tags премахва всичко, освен основния текст, така че можете да го използвате за всички полета, където крайната стойност е низ, а втората функция wp_kses_post () е същата функция, използвана за съдържанието на публикацията и премахва всички тагове, освен основните html като връзки , петна, divs, изображения и т.н..
4 - Функцията на джаджа ()
Функцията джаджа () е тази, която ще извежда съдържанието на уебсайта. Това е какво ще видят посетителите ви. Тази функция може да бъде персонализирана, за да включва CSS класове и конкретни тагове, които да съвпадат идеално с вашия дисплей на тема. Ето кода (моля, не, че този код може да се променя лесно, за да отговаря на вашите нужди):
// Показване на джаджа
джаджа за обществена функция ($ args, $ instance) {
извлечение ($ args);
// Проверете опциите за джаджи
$ title = isset ($ instance ['title'])? apply_filters ('widget_title', $ instance ['title']): '';
$ text = isset ($ instance ['text'])? $ instance ['text']: '';
$ textarea = isset ($ instance ['textarea'])? $ instance ['textarea']: '';
$ select = isset ($ instance ['select'])? $ instance ['select']: '';
$ checkbox =! празен ($ instance ['checkbox'])? $ instance ['checkbox']: невярно;
// WordPress ядро преди_ кука (винаги включва)
ехо $ before_widget;
// Показване на джаджа
ехо '
";
// WordPress ядро after_widget кука (винаги включва)
ехо $ after_widget;
}
Този код не е сложен, всичко, което трябва да запомните, е да проверите дали дадена променлива е зададена, ако не и ако искате да я отпечатате, ще получите съобщение за грешка.
Пълният код на приставката на джаджата
Сега, ако сте следвали правилно, вашия плъгин сега трябва да бъде напълно функционален и можете да го персонализирате, за да отговаря на вашите нужди. Ако не сте следвали ръководството или искате да проверите отново кода, можете да посетите страницата на Github, за да видите пълния код.
Вижте пълния код на Github
заключение
Видяхме, че създаването на джаджа вътре в плъгин е много интересно, сега трябва да знаете как да създадете обикновена приставка, съдържаща джаджа с различни типове полета, и сте се научили как да отидете малко по-нататък, използвайки съвременни техники за персонализиране на джаджата. Поздравления, свършихте невероятна работа!