web-dev-qa-db-fra.com

Avec WordPress Importer, pourquoi ne puis-je pas importer des méta-publications contenant un tableau multidimensionnel, dans ou sur les valeurs de ce tableau?

La question

Avec WordPress Importer , pourquoi ne puis-je pas importer des méta-publications contenant un tableau multidimensionnel, dans lesquelles la ou les valeurs de ce tableau contiennent des sauts de ligne?

Existe-t-il une solution de contournement que je puisse faire pour sauvegarder mes données afin que cela fonctionne? Y at-il quelque chose que je puisse faire dans mon processus d’assainissement pour formater les données différemment avant de les enregistrer dans le méta-post?

L'information de fond

J'ai créé un plugin WordPress qui fournit un constructeur de disposition. Les utilisateurs peuvent créer le contenu d'une mise en page personnalisée avec certains "éléments" qui leur sont attribués (c'est-à-dire un curseur, un ensemble de colonnes, une entrée de contenu, etc.), puis appliquer cette mise en page personnalisée à une page statique de leur site.

À l'origine, mon objectif était que toutes les mises en page personnalisées fonctionnent avec l'outil d'importation/exportation de WordPress. Ainsi, chaque mise en page personnalisée est en fait une publication de type publication personnalisée et son ensemble "d'éléments" respectif est enregistré en tant que méta de publication pour cette publication.

En résumé, j’enregistre donc ce tableau multidimensionnel unique avec tous les "éléments" en tant que champ personnalisé dans la publication personnalisée, qui correspond à la présentation personnalisée.

Le problème

Si l'un des "éléments" d'une présentation personnalisée contient du texte saisi par un utilisateur avec un saut de ligne, cela empêche cette méta de publication d'être importée via Outils> Importer> WordPress. Le résultat est que la publication personnalisée (c'est-à-dire la présentation personnalisée) est importée mais la méta de publication de l'élément est vide. Donc, l'utilisateur voit une mise en page vierge sans éléments.

Donc, ce premier exemple n'a pas de saut de ligne et ne fonctionne.

Cependant, dans ce deuxième exemple, l’utilisateur a mis un saut de ligne et, par conséquent, ne fonctionne pas et le problème décrit ci-dessus se produit.

Solutions possibles?

J'aimerais vraiment pouvoir configurer un exemple de contenu pour les utilisateurs et leur fournir le fichier d'importation WordPress afin qu'ils puissent importer rapidement ces exemples de disposition.

Donc, j'essaie juste de comprendre si quelque chose peut être fait pour éviter cela? Est-il possible, dans le cadre de mon processus de désinfection, de formater les données différemment avant de les stocker dans le méta-post? Évidemment, je ne ferais que supprimer tous les espaces, mais l'utilisateur ne pourra pas formater son texte dans les options du générateur de disposition.

4
Jason

Je dirais que votre problème est avec \r\n (CRLF). Si les nouvelles lignes sont créées dans Windows, elles sont enregistrées dans la base de données sous le nom \r\n et, lorsqu'elles sont sérialisées, comptent pour 2 caractères. Ensuite, lors de l'importation, ils ne seront comptés que pour 1 caractère et ils corrompront la chaîne. J'ai testé cette hypothèse et bien sûr, j'ai pu créer une chaîne sérialisée endommagée.

Si tel est votre problème, la solution serait de remplacer "\r\n" par "\n" lors de l'enregistrement de la méta de publication. C'est un long coup, mais je ne peux pas penser à quoi d'autre pourrait causer ce comportement. Donnez-vous un coup de feu et laissez-moi savoir comment ça marche!

4
Matthew Boynes