Lean Columnas
WordPress plugin for managing opinion columns with Columnista and Agencia roles
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/ctala/lean-columnas/archive/refs/heads/main.zipPlugin de WordPress para gestionar columnas de opinion con roles editoriales, flujo de trabajo completo y schema SEO.
Version: 0.1.0 Autor: Cristian Tala Licencia: GPL-2.0-or-later Requiere WordPress: 6.0+ Requiere PHP: 8.1+
Por que existe este plugin
Los medios digitales y sitios editoriales necesitan un sistema dedicado para gestionar columnas de opinion que sea independiente del flujo de publicacion de noticias. Lean Columnas introduce roles especificos (columnista, agencia), un flujo editorial con validaciones de calidad automaticas, y markup estructurado para SEO y E-E-A-T, sin agregar complejidad innecesaria al sitio.
Requisitos
- PHP 8.1 o superior
- WordPress 6.0 o superior
- Tema recomendado: GeneratePress (el CSS del plugin es estructural y compatible con GP)
- No requiere tablas personalizadas en la base de datos. Usa user meta y post meta nativos de WordPress.
Instalacion
Manual
- Descarga o clona el repositorio en
wp-content/plugins/lean-columnas/. - Activa el plugin desde el panel de administracion en Plugins > Plugins instalados.
- Al activar, el plugin registra automaticamente los roles personalizados y los custom post statuses.
WP-CLI
wp plugin activate lean-columnas
Funcionalidades
Custom Post Type: columna-opinion
El plugin registra el CPT columna-opinion con soporte para:
- Titulo, editor, autor, imagen destacada y extracto
- Archivo publico en
/columna-opinion/ - API REST habilitada en
/wp-json/wp/v2/columnas-opinion - Icono de menu:
dashicons-welcome-widgets-menus
Taxonomia: columna-categoria
Taxonomia jerarquica asociada al CPT. Permite clasificar columnas por tematica (economia, tecnologia, politica, etc.). Accesible via REST en /wp-json/wp/v2/columna-categorias.
Roles y capabilities
El plugin crea dos roles personalizados y agrega capabilities a los roles existentes de WordPress.
Rol: lc_columnista
| Capability | Descripcion |
|---|---|
read |
Acceso basico al panel |
upload_files |
Subir imagenes |
lc_create_column |
Crear columnas nuevas |
lc_edit_own_columns |
Editar sus propias columnas |
lc_delete_own_draft |
Eliminar borradores propios |
lc_submit_column |
Enviar columna a revision |
lc_view_own_stats |
Ver estadisticas propias |
lc_upload_images |
Subir imagenes para columnas |
Rol: lc_agencia
Hereda todas las capabilities de lc_columnista y agrega:
| Capability | Descripcion |
|---|---|
lc_assign_columnists |
Asignar columnistas a la agencia |
lc_submit_on_behalf |
Enviar columnas en nombre de un columnista |
lc_view_agency_stats |
Ver estadisticas de la agencia |
lc_edit_agency_columns |
Editar columnas de sus columnistas |
lc_view_agency_dashboard |
Acceder al dashboard de agencia |
Capabilities para Editor y Administrador
Se agregan a los roles editor y administrator:
| Capability | Descripcion |
|---|---|
lc_review_columns |
Revisar columnas en la cola editorial |
lc_edit_all_columns |
Editar cualquier columna |
lc_manage_all_columnists |
Gestionar todos los columnistas |
lc_manage_agencies |
Gestionar agencias |
lc_publish_column |
Publicar columnas |
lc_manage_settings |
Gestionar configuracion del plugin |
El rol administrator recibe todas las capabilities del plugin.
Flujo editorial
Las columnas de opinion siguen un flujo de estados personalizado. Cada transicion valida permisos del usuario y registra un log de auditoria en post meta (_lc_status_log).
draft --> lc_submitted --> lc_in_review --> lc_approved --> publish
| | |
v v v
draft lc_returned lc_in_review
lc_rejected
Transiciones permitidas:
| Estado actual | Estados siguientes permitidos |
|---|---|
draft |
lc_submitted |
lc_submitted |
lc_in_review, draft |
lc_in_review |
lc_approved, lc_returned, lc_rejected |
lc_returned |
lc_submitted, draft |
lc_approved |
publish, lc_in_review |
lc_rejected |
draft |
publish |
draft |
Capabilities requeridas por transicion:
lc_submittedrequierelc_submit_columnlc_in_review,lc_approved,lc_returned,lc_rejectedrequierenlc_review_columnspublishrequierelc_publish_column
Notas editoriales: Los editores pueden agregar notas en cada transicion. Se almacenan en _lc_editorial_notes como un array serializado con user_id, status, note y created_at.
Quality gates
Antes de enviar una columna a revision (transicion a lc_submitted), el sistema valida automaticamente:
| Validacion | Criterio |
|---|---|
| Conteo de palabras | Minimo 600, maximo 3,000 |
| Longitud del titulo | Minimo 10 caracteres, maximo 70 |
| Extracto | Obligatorio (no puede estar vacio) |
| Imagen destacada | Obligatoria |
| Subtitulos (h2/h3) | Minimo 2 en el contenido |
| Sanitizacion | No permite tags ` |