Principal/WordPress Fullstack/Blueprints/Gutenberg y FSE/Barra lateral editorial y de SEO en Gutenberg (PluginSidebar)
Volver a tarjetas «Gutenberg y FSE»
Gutenberg y FSE(ТЗ 34 из 54)
Especificación: Barra lateral editorial y de SEO en Gutenberg (PluginSidebar)
Gutenberg y FSE5 шагов • +25 XP

Especificación: Barra lateral editorial y de SEO en Gutenberg (PluginSidebar)

Desarrollo de herramientas editoriales personalizadas en la interfaz de Gutenberg: componentes PluginSidebar, PluginSidebarMoreMenuItem, registro de post meta con show_in_rest y gestión del almacén de datos con useSelect y useDispatch.

~10 ч работыУровень: Middle@wordpress/pluginsPluginSidebarPluginDocumentSettingPanel@wordpress/datauseEntityPropREST APIReact 19
+5 XP за шаг
Выполнено 0 из 5 шагов (0%)
Трудозатраты~10 рабочих часов
Фриланс вилка~$450 – $750 (€400 – €700)
Оценка веб-студии~$950 – $1,600 (€900 – €1500)

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

Nuestro equipo editorial necesita un panel lateral exclusivo dentro de Gutenberg para gestionar metadatos de SEO, estado de revisión del artículo, palabras clave y estimación del tiempo de lectura sin salir del editor.
Ключевые требования:
  • •Barra lateral personalizada registrada mediante la API registerPlugin() de @wordpress/plugins
  • •Botón de acceso en el menú superior mediante PluginSidebarMoreMenuItem
  • •Lectura del contenido y estadísticas del artículo en tiempo real con @wordpress/data useSelect
  • •Actualización de campos personalizados en el post con useDispatch('core/editor').editPost()
  • •Cálculo automático de palabras, tiempo estimado de lectura y lista de verificación de SEO
Ограничения проекта:
  • •Compatibilidad completa tanto en entradas (Post) como en páginas (Page)
  • •Restricción de permisos: impedir que los autores modifiquen el estado de aprobación
Критерии приёмки (KPI):
  • Actualización de metadatos en tiempo real sin lentitud en el editor (< 16ms por ciclo)
  • Sincronización automática de campos con el botón nativo Guardar del editor
  • Accesibilidad del 100% en todos los campos de formulario del panel lateral

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

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

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

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

1
Этап 1 из 5

Paso 1: Registro de campos de post meta en PHP

~25 минЛегкий

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

En functions.php, registre los campos mediante register_post_meta('post', '_seo_focus_keyword', [ 'show_in_rest' => true, 'single' => true, 'type' => 'string' ]) y '_editorial_status'.

План и контрольные точки реализации:
1Зарегистрировать метаполя через register_post_meta
2Включить show_in_rest => true для всех полей
3Задать корректные типы данных
Важные технические нюансы и подводные камни:

Configure auth_callback en los campos meta si desea limitar la edición según el perfil del usuario.

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

Метаполя, доступные для Redux-хранилища Gutenberg.

PHP
<?php
// functions.php - Метаполя для PluginSidebar
declare(strict_types=1);

add_action('init', function (): void {
    $meta_fields = [
        '_seo_title'        => 'string',
        '_seo_description'  => 'string',
        '_telegram_preview' => 'string',
    ];

    foreach ($meta_fields as $field => $type) {
        register_post_meta('post', $field, [
            'show_in_rest'  => true,
            'single'        => true,
            'type'          => $type,
            'auth_callback' => fn() => current_user_can('edit_posts'),
        ]);
    }
});
2
Этап 2 из 5

Paso 2: Creación del componente PluginSidebar en React

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

Paso 3: Conexión con el almacén mediante useSelect y useDispatch

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

Paso 4: Contador de tiempo de lectura y densidad de palabras clave

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

Paso 5: Encolado del script y comprobación en el editor

~20 минЛегкий

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

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

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

Интеграция