Forge
markdowne8ad0934
1# WordPress — архитектура и операции (ядро, темы, плагины)
2
3**Назначение:** опорная карта **WordPress как CMS/платформы** для агентов и разработчиков: жизненный цикл запроса, расширяемость, данные, обновления и базовая безопасность. Мир `software.wordpress`. Не руководство по дизайну тем.
4
5**Порядок:** `status-php-laravel-v1.md` → `playbook-php-v1.md` (Composer только если Bedrock/roots; иначе авто-загрузчик плагинов) → этот файл. Нативный PHP — `kb-php-*` при низкоуровневых багах.
6
7---
8
9### 1. Ядро и жизненный цикл
10
11- **Fact:** запрос обрабатывается через bootstrap ядра → парсинг URL → query → шаблон (theme); плагины подключаются по порядку загрузки и хуков.
12- **Heuristic:** «ничего не срабатывает» — проверить **приоритет хука**, отключение плагинов, fatal в `debug.log`.
13- **Confidence:** high
14
15---
16
17### 2. Хуки: actions и filters
18
19- **Fact:** **do_action** / **add_action** — побочные эффекты; **apply_filters** / **add_filter** — трансформация данных. Имена хуков — контракт между ядром, темой и плагинами.
20- **Heuristic:** тяжёлую логику не вешать на `init` с приоритетом по умолчанию без нужды; избегать N запросов к БД из каждого filter callback.
21- **First adoption task:** документировать кастомные хуки плагина (имя, когда, аргументы).
22
23---
24
25### 3. Темы и плагины
26
27- **Fact:** тема — presentation + `functions.php`; плагины — изолированная функциональность. Child theme — способ безопасно переопределять родительскую тему.
28- **Heuristic:** правки ядра и чужих плагинов напрямую в `wp-content` — антипаттерн; использовать hooks, child theme, must-use plugins по политике.
29
30---
31
32### 4. Данные: wpdb, CPT, таксономии
33
34- **Fact:** глобальный объект **wpdb** для SQL (экранирование через prepared-подобные методы); Custom Post Types и taxonomies регистрируются на `init`.
35- **Heuristic:** сырые запросы без подготовки — SQLi-риск; сравнить с `kb-php-data-persistence-v1.md`.
36- **Confidence:** medium
37
38---
39
40### 5. Пользователи, роли, capabilities
41
42- **Fact:** модель прав — **roles + capabilities**; проверки через `current_user_can` и т.п.
43- **Heuristic:** «админ всё может» в кастомном коде — дыра; явные capability checks на опасных действиях.
44
45---
46
47### 6. Обновления и окружения
48
49- **Fact:** обновления ядра/плагинов/тем — через админку или WP-CLI; несовместимости после мажора PHP — типичный класс инцидентов.
50- **Heuristic:** staging + бэкап БД/файлов до обновления; для продакшена — отключение редактора файлов в админке.
51
52---
53
54### 7. Безопасность (baseline)
55
56- **Fact:** ключи и соли в `wp-config.php`; ограничение login rate; права на файлы; HTTPS для админки.
57- **Heuristic:** известные уязвимости в популярных плагинах — держать авто-обновления или мониторинг CVE.
58- **Transfer_boundary:** не заменяет пентест; см. OWASP.
59
60---
61
62### 8. Bedrock / Composer (кратко)
63
64- **Fact:** **Roots Bedrock** и аналоги переносят конфиг в `.env`, структуру каталогов и Composer для ядра/плагинов — тогда `composer.lock` обязателен в VCS.
65- **Heuristic:** смешение «классического» WP и Bedrock в одной голове — путаница путей; уточнять у проекта.
66
67---
68
69## Registry card (template-knowledge-card-v1)
70
71### Provenance
72- source_refs: `https://developer.wordpress.org/`; обобщение 2026-03-01
73- created_at: 2026-03-01
74- updated_at: 2026-03-01
75- author: agent-notes KB maintainer
76
77### Metadata
78- card_id: KC-2026-03-01-WP-OPS
79- world: software.wordpress
80- layer: world
81- tags: wordpress; hooks; plugins; themes; security
82- status: active
83
84### Epistemic Linkage
85- epistemic_basis: fact + inference
86- evidence_type: official developer docs
87- confidence: medium
88- uncertainty: версия ядра и контриб-модуля
89- falsification_trigger: крупные архитектурные изменения в будущих мажорах WP
90- transfer_boundary: не Laravel/Symfony full stack
91
92### Core Unit
93- context: плагин, тема, инцидент после обновления
94- signal: «какой хук», «почему 500 в админке»
95- action: hooks + лог + версии
96- outcome: предсказуемые расширения без правок ядра
97- lesson: WP — событийная модель; сначала хук, потом код
98
99### Operationalization
100- first_adoption_task: версия WP + список активных плагинов в README
101- validation_check: staging clone + smoke админки
102- success_criterion: обновления по чек-листу
103- rollback_or_mitigation: бэкап + откат плагина
104
105### Lifecycle
106- supersedes: —
107- superseded_by: —
108- deprecation_reason: —
109
110
View only · write via MCP/CIDE