WP Manifestindependent plugin directory
manifest / content / lean-columnas

Lean Columnas

WordPress plugin for managing opinion columns with Columnista and Agencia roles

by Cristian Tala · github.com/ctala/lean-columnas · website

0stars
0forks

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.zip

Plugin 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

  1. Descarga o clona el repositorio en wp-content/plugins/lean-columnas/.
  2. Activa el plugin desde el panel de administracion en Plugins > Plugins instalados.
  3. 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_submitted requiere lc_submit_column
  • lc_in_review, lc_approved, lc_returned, lc_rejected requieren lc_review_columns
  • publish requiere lc_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 `