Головна/WordPress Fullstack/Блупринти/Кастомні теми/Кастомна панель налаштувань теми (Theme Options) на базі Settings API
До карток розділу «Кастомні теми»
Кастомні теми(ТЗ 25 из 54)
ТЗ: Кастомна панель налаштувань теми (Theme Options) на базі Settings API
Кастомні теми5 шагов • +25 XP

ТЗ: Кастомна панель налаштувань теми (Theme Options) на базі Settings API

Легка та швидка панель керування налаштуваннями теми: окрема сторінка в адмінці через add_theme_page(), інтеграція Settings API, сувора валідація даних, вкладки та хелпер get_theme_option() з кешуванням.

~7 ч работыУровень: JuniorPHP 8.3/8.4WordPress Settings APIregister_settingadd_settings_sectionadd_settings_fieldwp_options autoloadesc_html / esc_attrwp_filter_post_kses
+5 XP за шаг
Выполнено 0 из 5 шагов (0%)
Трудозатраты~7 рабочих часов
Фриланс вилка~$315 – $525 (€280 – €490)
Оценка веб-студии~$665 – $1,120 (€630 – €1050)

ТЗ заказчика (исходный бриф):

Нам потрібна сторінка глобальних налаштувань теми в адмінці (логотип, контакти, соцмережі, копірайт футера та вставка скриптів). Ми не хочемо ставити важкі плагіни на кшталт Redux Framework чи ACF Theme Options, які сповільнюють адмінку.
Ключевые требования:
  • •Окрема сторінка налаштувань у меню Зовнішній вигляд > Налаштування теми через add_theme_page()
  • •Нативна архітектура Settings API: register_setting, add_settings_section, add_settings_field
  • •Серверна валідація та санітизація кожного поля за типом даних (текст, email, URL, телефон, код)
  • •Адаптивний інтерфейс із вкладками та викликом нативного завантажувача медіафайлів
  • •Швидка допоміжна функція get_theme_option($key, $default = null) з кешуванням у пам'яті
Ограничения проекта:
  • •Нуль сторонніх фреймворків чи сторонніх бібліотек
  • •Збереження всіх налаштувань в одному серіалізованому масиві в таблиці wp_options
  • •Доступ тільки для користувачів із правами 'manage_options'
Критерии приёмки (KPI):
  • Час завантаження сторінки налаштувань в адмінці < 150мс
  • Нуль неочищених значень у базі даних
  • Доступ до всіх налаштувань у шаблонах без додаткових SQL-запитів

Конфигурация блупринта под условия проекта

Выберите архитектуру и стек — шаги роадмапа, структура файлов и примеры кода переключатся автоматически:

Пошаговое практическое руководство по ТЗ

Подробный разбор архитектуры, код реализации и советы эксперта по каждому этапу:

1
Этап 1 из 5

Крок 1: Реєстрація сторінки меню через add_theme_page()

~25 минЛегкий

Практическое руководство:

Підключіться до хука admin_menu. Викличте add_theme_page('Налаштування теми', 'Налаштування теми', 'manage_options', 'theme-options', 'render_theme_options_page').

План и контрольные точки реализации:
1Подключить хук admin_menu
2Задать права manage_options
3Создать функцию-заглушку theme_render_options_page
Важные технические нюансы и подводные камни:

Завжди обмежуйте доступ правом 'manage_options', щоб змінювати налаштування могли лише адміністратори сайту.

Ожидаемый артефакт этапа:

Пункт меню «Настройки темы» в админке WordPress.

PHP
<?php
// inc/theme-options.php
declare(strict_types=1);

add_action('admin_menu', function (): void {
    add_theme_page(
        'Настройки темы',
        'Настройки темы',
        'manage_options',
        'theme-options',
        'theme_render_options_page'
    );
});
2
Этап 2 из 5

Крок 2: Реєстрація опцій та секцій через Settings API

~45 минСредний
3
Этап 3 из 5

Крок 3: Серверна санітизація даних перед записом у БД

~30 минСредний
4
Этап 4 из 5

Крок 4: Верстка сторінки налаштувань із формою та табами

~30 минЛегкий
5
Этап 5 из 5

Крок 5: Хелпер-функція get_theme_option() та вивід у шаблонах

~20 минЛегкий

Типичные грабли на этом ТЗ

2 антипаттерна

Инструменты экосистемы Fullstack AI Lab для этого ТЗ

Интеграция