Migrar helpers de margen y relleno

Usa este comando al actualizar un sitio POM cuyas páginas o plantillas heredadas todavía utilizan clases de espaciado con nombres basados en píxeles. Requiere WordPress con POM Theme, WP-CLI, una copia de staging y una copia de seguridad completa de la base de datos y los ajustes. Ejecútalo antes de volver a abrir el sitio actualizado a editores y visitantes: los helpers de píxeles retirados no tienen alias de compatibilidad en el frontend.

Para migrar fuentes, huecos y espaciados juntos en un solo análisis, usa la migración unificada de helpers. Los cuatro comandos comparten el mismo comportamiento de aplicación, copia de seguridad y caché.

Mapa de reemplazo

El mismo mapa de sufijos se aplica a m, mt, mr, mb, ml, p, pt, pr, pb y pl:

Sufijo anterior Sufijo nuevo Espaciado nuevo
0 0 Sin cambios
5 0375 0.375rem
10 075 0.75rem
15 1 1rem
20 125 1.25rem
25, 30 2 2rem
40, 50 3 3rem
60, 70 4 4rem
80, 90, 100 6 6rem

El nuevo sufijo 8 proporciona 8rem; no tiene reemplazo heredado automático. Se trata de equivalentes de diseño aproximados, no de una conversión exacta de píxeles. mauto, mr-auto no compatible y los helpers de valor cero se dejan sin cambios.

Ejecutar la migración

  1. Haz una copia de seguridad de la base de datos y de las plantillas gestionadas. Pausa la edición y las importaciones programadas durante la aplicación. Actualiza POM Theme y las plantillas de plugins de primera parte correspondientes juntos en staging.

  2. Inspecciona el sitio actual sin escribir:

    wp pom migrate-spacing-helpers --url=https://example.test --dry-run
  3. Revisa el resumen y los avisos de revisión manual; añade --verbose para listar cada ubicación propuesta. Añade --network para inspeccionar todos los sitios con el tema POM en la red actual; los demás temas se omiten. Los metadatos de usuario compartidos, las opciones de red y las plantillas compartidas requieren la inclusión voluntaria por separado con --include-shared porque pueden servir a otros temas.

  4. Revisa los avisos informativos en la salida de la CLI. Los valores no resueltos se omiten por completo y se dejan sin cambios; no impiden que se migren las ubicaciones seguras. Puedes revisarlos y corregirlos manualmente después de la aplicación. Una lista de clases que mezcle valores antiguos con nombres compactos como pt-1 requiere una decisión: las clases compactas anteriormente no definidas adquirirían un significado en rem. Corrígelas en el código fuente, pasa eliminaciones exactas revisadas como --remove-compact-classes=pt-1,pb-1, o usa --keep-mixed-classes solo después de confirmar que su nuevo significado en rem es el deseado.

  5. Proporciona un directorio privado existente fuera de WordPress con modo 0700 y aplica el mismo alcance revisado:

    wp pom migrate-spacing-helpers --url=https://example.test --apply --backup-dir=/private/migrations

    Cada ejecución crea un plan de copia de seguridad privado antes de su primera escritura de contenido. Contiene los valores originales y propuestos exactos; mantenlo privado junto con la copia de seguridad completa previa a la actualización. No lo publiques como informe descargable.

  6. Verifica los resultados almacenados con otro análisis de prueba:

    wp pom migrate-spacing-helpers --url=https://example.test --dry-run --fail-on-remaining

    La migración deja todas las cachés y los recursos generados sin cambios. Las respuestas en caché existentes pueden seguir mostrando contenido antiguo hasta que el ciclo de vida normal de la caché o una renovación gestionada por separado surta efecto.

  7. Comprueba páginas heredadas representativas, plantillas de archivo/feed/entrada individual, páginas traducidas y diseños adaptables antes de reabrir el sitio. Confirma que el segundo análisis de prueba no informe de reemplazos seguros y revisa cualquier aviso de revisión manual restante.

Alcance y preservación

El comando inspecciona todos los tipos y estados de entrada, revisiones, extractos, metadatos estándar, opciones, descripciones de términos, comentarios y ajustes/plantillas gestionados de POM Framework. Modifica atributos de clases HTML reconocidos, atributos de clases de shortcodes heredados, campos de clases estructurados compatibles y selectores CSS. Entiende la serialización PHP escalar/array, JSON, HTML en base64, HTML codificado en URL en base64 como vc_raw_html, marcado codificado en entidades y marcado de plantillas heredado con barras de escape. Las plantillas PHP gestionadas se analizan como texto, nunca se ejecutan.

No modifica atributos numéricos arbitrarios, declaraciones inline de margen/relleno, espaciados adaptables de Page Builder, tamaños de fuente, huecos, nombres de shortcode, fechas de entrada ni atributos de espaciado de bloques de Gutenberg. No analiza ni reescribe los archivos fuente de temas/plugins; actualiza sus plantillas suministradas con sus versiones de producto correspondientes. Las tablas personalizadas de terceros, las plantillas externas y los formatos binarios opacos requieren un inventario independiente. Los objetos/referencias serializados y los fragmentos de código no resueltos se informan para revisión manual, no se reescriben.

No se realiza ninguna limpieza de caché, incluida una repetición con --apply sin reemplazos. Se conservan las cachés de objetos, las entradas de caché individuales, la OPcache, los esqueletos de traducción, los transitorios de estilos editables, los recursos generados y las cachés de página/CDN. El mantenimiento de la caché y de los recursos son operaciones independientes del propietario del sitio.

Opciones y gestión de errores

  • --dry-run: simulación explícita; también es el comportamiento predeterminado sin --apply.
  • --apply: escribe las ubicaciones seguras tras la comprobación previa; los valores que requieren revisión manual permanecen sin cambios.
  • --backup-dir: obligatorio para la aplicación; existente, privado, escribible y fuera de WordPress.
  • --network: todos los sitios con el tema POM en la red actual.
  • --include-shared: incluir explícitamente los datos compartidos.
  • --batch-size: tamaño de lote de lectura indexada, 25–2000; predeterminado 250, reducido para valores grandes.
  • --verbose: lista cada ubicación propuesta junto con el progreso por fase.
  • --include-network-options: añade opciones de la red actual sin otros datos compartidos.
  • --keep-mixed-classes: aceptación explícita de clases compactas mezcladas con clases de píxeles antiguas.
  • --remove-compact-classes: lista separada por comas de clases compactas exactas que eliminar de las listas de clases reconocidas que también contienen un helper de píxeles retirado. Este límite de valores heredados evita que una ejecución repetida elimine clases rem nuevas legítimas.
  • --fail-on-remaining: devuelve también un código de salida de error cuando un análisis de prueba encuentra reemplazos seguros.

Los avisos de revisión manual aparecen directamente en la terminal, no en los archivos de registro de WordPress. Cada aviso identifica el sitio, la ubicación exacta del archivo o de la base de datos, el nombre de la opción/metadato cuando está disponible, el campo detectado, los nombres de los helpers cuando están disponibles y el motivo por el que se omitió. La pista de revisión distingue JavaScript, CSS/SCSS personalizado, plantillas u otro contenido/ajustes almacenados mediante el nombre de campo disponible o la extensión de archivo. Los valores codificados pueden informar del campo descodificado y de los nombres de los helpers. El valor omitido completo se conserva, incluidas las clases convertibles que contenga.

El resumen cuenta los valores omitidos bajo manual_review, por separado de los bloqueos issues. Los avisos de revisión manual por sí solos devuelven un código de salida satisfactorio, también con --fail-on-remaining; esa opción solo comprueba los reemplazos seguros. Los fallos de lectura/escritura, las filas o archivos gestionados demasiado grandes y el PHP reescrito no válido siguen bloqueando o deteniendo la aplicación. El progreso y la recuperación ante interrupciones siguen la guía unificada. Los cambios son idempotentes. La aplicación comprueba que cada valor original no haya cambiado desde la comprobación previa y se detiene en lugar de sobrescribir ediciones simultáneas. La aplicación no es una única transacción entre la base de datos y el sistema de archivos: un fallo después de las escrituras puede dejar un sitio parcialmente migrado. Mantenlo cerrado, revisa el recuento informado y el plan de copia de seguridad, y resuelve la causa y vuelve a ejecutar o restaura la copia de seguridad coordinada de base de datos/ajustes. No restaures únicamente un lado de un par de plantillas HTML/PHP.

Los valores mayores de 16 MiB, el anidamiento de codificación/estructura más allá de 16 niveles y los formatos no compatibles requieren gestión manual. Las copias de seguridad se conservan hasta que las elimines explícitamente después de la verificación.