Files
roi-theme/schemas/components/related-posts.json
FrankZamora 90de6df77c Fase-01: Preparación del entorno y estructura inicial
- Verificación de entorno XAMPP (PHP 8.0.30, Composer 2.9.1, WP-CLI 2.12.0)
- Configuración de Composer con PSR-4 para 24 namespaces
- Configuración de PHPUnit con 140 tests preparados
- Configuración de PHPCS con WordPress Coding Standards
- Scripts de backup y rollback con mejoras de seguridad
- Estructura de contextos (admin/, public/, shared/)
- Schemas JSON para 11 componentes del sistema
- Código fuente inicial con arquitectura limpia en src/
- Documentación de procedimientos de emergencia

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 16:34:49 -06:00

146 lines
4.0 KiB
JSON

{
"component_name": "related-posts",
"version": "1.0.0",
"description": "Posts relacionados al final del contenido principal",
"groups": {
"visibility": {
"label": "Visibilidad",
"priority": 10,
"fields": {
"is_enabled": {
"type": "boolean",
"label": "Activar posts relacionados",
"default": true,
"required": true,
"description": "Activa o desactiva el componente de posts relacionados"
},
"section_title": {
"type": "text",
"label": "Título de la sección",
"default": "Descubre Más Contenido",
"maxlength": 200,
"required": true,
"description": "Título que aparece antes del grid de posts"
}
}
},
"query": {
"label": "Configuración de Consulta",
"priority": 20,
"fields": {
"posts_per_page": {
"type": "number",
"label": "Posts por página",
"default": 12,
"min": 1,
"max": 100,
"required": true,
"description": "Cantidad de posts a mostrar por página"
},
"post_selection": {
"type": "select",
"label": "Criterio de selección",
"default": "category",
"options": {
"category": "Misma categoría",
"tags": "Mismos tags",
"both": "Categoría y tags",
"recent": "Más recientes",
"random": "Aleatorio"
},
"required": true,
"description": "Cómo seleccionar los posts relacionados"
},
"exclude_current_post": {
"type": "boolean",
"label": "Excluir post actual",
"default": true,
"description": "Excluye el post actual de los resultados"
}
}
},
"layout": {
"label": "Diseño y Disposición",
"priority": 30,
"fields": {
"columns": {
"type": "select",
"label": "Número de columnas",
"default": "3",
"options": {
"1": "1 columna",
"2": "2 columnas",
"3": "3 columnas",
"4": "4 columnas"
},
"required": true,
"description": "Número de columnas en el grid"
},
"card_height": {
"type": "select",
"label": "Altura de cards",
"default": "equal",
"options": {
"auto": "Automática",
"equal": "Igual (centrado)"
},
"description": "Controla cómo se muestran las cards"
}
}
},
"pagination": {
"label": "Paginación",
"priority": 40,
"fields": {
"show_pagination": {
"type": "boolean",
"label": "Mostrar paginación",
"default": true,
"description": "Muestra u oculta la paginación"
},
"pagination_position": {
"type": "select",
"label": "Posición de la paginación",
"default": "center",
"options": {
"left": "Izquierda",
"center": "Centro",
"right": "Derecha"
},
"conditional_logic": {
"field": "show_pagination",
"operator": "==",
"value": true
},
"description": "Alineación de la paginación"
}
}
},
"styles": {
"label": "Estilos",
"priority": 50,
"fields": {
"container_classes": {
"type": "text",
"label": "Clases CSS del contenedor",
"default": "my-5 related-posts",
"description": "Clases CSS adicionales para el contenedor principal"
},
"grid_gap": {
"type": "select",
"label": "Espaciado del grid",
"default": "4",
"options": {
"1": "Muy pequeño",
"2": "Pequeño",
"3": "Normal",
"4": "Grande",
"5": "Muy grande"
},
"description": "Espaciado entre cards"
}
}
}
}
}