Как да добавите персонализирани раздели към страниците с настройки в WordPress
Използването на раздели в потребителския интерфейс може да помогне за по-доброто организиране на съдържанието, така че има смисъл темите на WordPress, които имат много опции за персонализиране, да се възползват от използването на раздели на страницата с настройки. С този урок ще научите как да създадете страница с настройки с раздели и също така ще можете да изтеглите тема на WordPress, която имплементира разработения код.
За да получите представа за разделите, които ще създадем, отидете в менютоВъншен вид → Теми в административната област на WordPress. Там ще видите 2 раздела: „Управление на теми “ и „Инсталиране на теми “. Ако щракнете върху един от тях, съдържанието ще се промени и заглавието на раздела ще бъде маркирано.
Процесът всъщност е доста прост: задаваме и изпращаме променливатаtab, когато се щракне върху раздела. Запитването на тази променлива по-късно с$_GET['tab'] ще ни каже кой раздел е избран, за да подчертаем правилното заглавие и да покажем съответния раздел.
В нашия подход има три момента, когато ще трябва да знаем в кой раздел се намира потребителят в момента:
- Когато показваме раздели и полета на формуляр за настройки (за показване на правилния набор от полета).
- Когато потребителят запише настройките (за да запише правилните полета).
- Когато пренасочваме потребителя, след като е запазил настройките (за да пренасочи потребителя към правилния раздел).
За да бъдем кратки, няма да обясняваме целия код, а само онези фрагменти, които отговарят на този подход. Можете обаче да намерите целия код в прикачената тема.
Създаване на раздели
Първият фрагмент, който ще разгледаме, е −код, който създава раздели:
Тази функция ще бъде извикана по-късно в съдържанието на страницата с настройки. Първо декларираме масив, който съдържа нашите раздели. Първият раздел, който се показва първи по подразбиране, еначална страница, където можем да зададем някои настройки за показване на началната страница. След това имамеобщи, което е страницата, съдържаща настройките, които се използват в целия сайт, и накраядолния колонтитул за вмъкване на кода за проследяване в долния колонтитул.
След това задаваме URL връзките за всеки раздел и ги показваме. Имайте предвид, че ако даден раздел е отворен, е добавен допълнителен класnav-tab-active.
Показване на съдържание в раздели
Съдържанието на страницата с настройки се изобразява във функция за обратно извикване заadd_theme_page (която е абстракция наadd_theme_page ), която в нашата тема ще се наричаilc_settings_page. Това е мястото, където ще извиквате функцията, която разгледахме по-рано.
Ако разделът е разделът по подразбиране, тогава$_GET['tab'] не е дефиниран, в който случай текущият раздел ще бъденачална страница и съответно избран. В противен случай ще бъде избран разделът, дефиниран в$_GET['tab'].
След това трябва да покажем правилния набор от полета. В зависимост от стойността на$tab ще покажем полетата за раздела с настройки на началната страница или за някой от другите раздели:
Всички настройки ще се съхраняват в един масив, за да се предотврати генерирането на множество заявки.
Запазване на полета от раздели
Сега трябва да знаем кои позиции в масива да съхраняваме. В зависимост от това кой раздел се показва, ще се покажат някои опции от масива с настройки. Ако просто запазим всички позиции на масива, ниепрезаписват някои позиции, които не се показват в текущия раздел и следователно не трябва да бъдат записани.
Използвахме отново условиетоswitch, за да поискаме стойността на$tab и да съхраним правилните стойности в масива. След това актуализирахме опциите в базата данни на WordPress.
Пренасочване на потребителя към правилния раздел
Сега, след като съдържанието е запазено, имаме нужда от WordPress, за да пренасочи потребителя обратно към съответния раздел на страницата с настройки.
В зависимост от това дали$_GET['tab'] е зададено, ние използвамеwp_redirect, за да изпратим потребителя към раздела по подразбиране или към някой от другите раздели.
Сега нашите раздели работят, показват правилния набор от полета, запазват правилните полета и след това изпращат потребителя към правилния раздел.
Зареждане на тема
Почти всяка тема с умерено количество опции ще се възползва от раздели на страницата с настройки. Но не забравяйте, че това е само един от подходите. Друг подход би бил да добавите няколко сгъваеми кутии, като на страницата за добавяне на съдържание, и автоматично да свиете кутии, които не се използват често. Разделите обаче ще ви позволят да отделите по-добре всеки набор от настройки.
И накрая, ето една тема, която да разгледате по-отблизо:
- Тема с раздели в страницата с настройки
Темата също така включва функция, при която всеки таг се изобразява с отделен CSS клас, така че можете да разгледате и това.