Con WordPress Importer, ¿por qué no puedo importar metadatos posteriores que contengan una matriz multidimensional, en qué valor (es) de esa matriz contienen saltos de línea?

4

La pregunta

Con WordPress Importer , ¿por qué no puedo importar un meta de publicación que contenga una matriz multidimensional, en ¿Qué valor (es) de esa matriz contienen saltos de línea?

¿Hay alguna solución que pueda hacer para guardar mis datos para que funcionen? ¿Hay algo que pueda hacer en mi proceso de saneamiento para formatear los datos de manera diferente antes de guardarlo en el meta meta?

La información de fondo

He creado un complemento de WordPress que proporciona un generador de diseño. Los usuarios pueden construir el contenido para un diseño personalizado con ciertos "elementos" que se les dan (es decir, un control deslizante, un conjunto de columnas, una entrada de contenido, etc.) y luego aplicar ese diseño personalizado a una página estática en su sitio.

Originalmente, mi objetivo era que todos los diseños personalizados funcionaran con la herramienta de importación / exportación de WordPress. Por lo tanto, cada diseño personalizado es en realidad una publicación de tipo de publicación personalizada, y su conjunto respectivo de "elementos" se guarda como meta de publicación de esa publicación.

Por lo tanto, básicamente estoy guardando esta matriz multidimensional única con todos los "elementos" como un campo personalizado en la publicación personalizada, que es el diseño personalizado.

El problema

Si alguno de los "elementos" de un diseño personalizado contiene algún texto ingresado por el usuario con un salto de línea, evita que el metadatos posterior se importe a través de Herramientas > Importar > WordPress . El resultado es que la publicación personalizada (es decir, el diseño personalizado) se importa, pero la meta del elemento está vacía. Así que el usuario ve un diseño en blanco sin elementos.

Entonces, este primer ejemplo no tiene saltos de línea y funciona .

Sin embargo, en este segundo ejemplo, el usuario ha puesto un salto de línea, por lo que no funciona y se produce el problema descrito anteriormente.

¿Soluciones posibles?

Realmente me gustaría poder configurar el contenido de muestra para los usuarios y darles el archivo de importación de WordPress para que puedan importar rápidamente estos diseños de muestra.

Entonces, ¿estoy tratando de averiguar si se puede hacer algo para evitar esto? ¿Es posible dentro de mi proceso de desinfección puedo formatear los datos de manera diferente antes de almacenarlos en el meta meta? Obviamente, simplemente eliminaría todo el espacio en blanco, pero el usuario no podrá formatear su texto dentro de las opciones del creador de diseño.

    
pregunta Jason 15.02.2012 - 01:35

1 respuesta

4

Yo consideraría que su problema es con \r\n (CRLF). Si las nuevas líneas se crean en Windows, entrarán en la base de datos como \r\n y cuando se serialicen se cuentan como 2 caracteres. Luego, al importar, solo se contabilizarán como 1 carácter y dañarán la cadena. Probé esta hipótesis y, con toda seguridad, pude crear una cadena serializada corrupta.

Si este es tu problema, la solución sería reemplazar "\r\n" con "\n" al guardar el metadatos. Esta es una posibilidad remota, pero no puedo pensar en qué otra cosa podría causar este comportamiento. ¡Dale una oportunidad y hazme saber cómo funciona!

    
respondido por el Matthew Boynes 15.02.2012 - 04:54

Lea otras preguntas en las etiquetas