Головна/WordPress Fullstack/Блупринти/Gutenberg & FSE/Розробка динамічного блока з серверним рендерингом (render.php)
До карток розділу «Gutenberg & FSE»
Gutenberg & FSE(ТЗ 29 из 54)
ТЗ: Розробка динамічного блока з серверним рендерингом (render.php)
Gutenberg & FSE5 шагов • +25 XP

ТЗ: Розробка динамічного блока з серверним рендерингом (render.php)

Створення динамічних блоків із живими запитами до бази: серверний шаблон render.php, оптимізація WP_Query, кешування через Transients API, прев'ю в редакторі та синхронізація атрибутів.

~8 ч работыУровень: Middle@wordpress/scriptsblock.json v3render.phpServerSideRenderWP_QueryTransient CacheInspectorControls
+5 XP за шаг
Выполнено 0 из 5 шагов (0%)
Трудозатраты~8 рабочих часов
Фриланс вилка~$360 – $600 (€320 – €560)
Оценка веб-студии~$760 – $1,280 (€720 – €1200)

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

Нам потрібен блок 'Сітка свіжих курсів/кейсів', який завжди показує актуальні записи без необхідності перезберігати сторінку. Він має генеруватися на сервері в PHP і оновлюватися автоматично при публікації нових матеріалів.
Ключевые требования:
  • •Серверний рендеринг блока через render.php без запису статичного HTML у post_content
  • •Налаштовувані атрибути в block.json: postType, categoryIds, postsPerPage, columns
  • •Попередній перегляд у редакторі за допомогою ServerSideRender або легкого React-компонента
  • •Кешування SQL-запитів через Transients API з автоматичним скиданням кешу під час оновлення постів
  • •Семантична HTML-розмітка карток з адаптивною сіткою та мікророзміткою
Ограничения проекта:
  • •Висока швидкість виконання SQL-запитів без неіндексованих фільтрів у великих базах (100k+ записів)
  • •Коректне відображення повідомлення про відсутність записів за заданими фільтрами
Критерии приёмки (KPI):
  • Час виконання render.php на сервері < 25мс (з кешу)
  • Нуль зайвого HTML-коду в колонці post_content таблиці wp_posts
  • 100% відповідність зовнішнього вигляду в редакторі реальному відображенню на сайті

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

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

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

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

1
Этап 1 из 5

Крок 1: Налаштування block.json із вказівкою render.php

~30 минЛегкий

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

Додайте у block.json властивість 'render': 'file:./render.php'. Оголосіть атрибути: 'postType', 'categoryIds', 'postsPerPage', 'columns' та 'showThumbnails'.

План и контрольные точки реализации:
1Указать apiVersion: 3
2Задать атрибуты postsToShow, columns, selectedCategory с дефолтными значениями
3Привязать render: "file:./render.php"
4Отключить html: false в supports
Важные технические нюансы и подводные камни:

Не створюйте файл save.js; динамічні блоки зберігають пусте значення або null у вмісті статті.

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

Валидный конфигурационный файл block.json v3.

JSON
{
  "$schema": "https://schemas.wp.org/trunk/block.json",
  "apiVersion": 3,
  "name": "agenticlab/course-grid",
  "version": "1.0.0",
  "title": "Сетка курсов (Динамическая)",
  "category": "widgets",
  "icon": "grid-view",
  "description": "Автоматический вывод свежих курсов с фильтрацией по рубрикам и кешированием.",
  "supports": {
    "html": false,
    "align": ["wide", "full"],
    "color": { "background": true, "text": true },
    "spacing": { "margin": true, "padding": true }
  },
  "attributes": {
    "postsToShow": { "type": "number", "default": 3 },
    "columns": { "type": "number", "default": 3 },
    "selectedCategory": { "type": "number", "default": 0 }
  },
  "editorScript": "file:./index.js",
  "editorStyle": "file:./index.css",
  "style": "file:./style-index.css",
  "render": "file:./render.php"
}
2
Этап 2 из 5

Крок 2: Компонент прев'ю на базі ServerSideRender

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

Крок 3: Оптимізований WP_Query та кешування через Transients

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

Крок 4: Семантична розмітка карток та екранування виведення

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

Крок 5: Хуки скидання кешу та обробка крайніх випадків

~20 минЛегкий

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

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

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

Интеграция