Por que eu perdi todas as barras, ou seja, “\”, nos meus blogs quando importo arquivos XML pelo plug-in do WordPress?

4

Quando eu quiser importar os arquivos XML com o auxílio do plugin Importador do WordPress, os blogs importados perderão todas as barras, ou seja, "\", que estão realmente contidos nos arquivos XML importados.

Como tenho que usar o plug-in LaTeX (Latex para plug-in do WordPress), isso se torna terrível.

Na verdade, talvez semanas atrás, funcionou bem. Não houve tal problema em tudo. Mas a partir de um dia, acho que tudo mudou. TT

Existe alguém que saiba o que está acontecendo? Muito obrigado!

    
por shuiruge 28.04.2012 / 11:29

4 respostas

4

O importador chama wp_insert_post() , que executa stripslashes_deep() nos dados. Mas o exportador não executa addslashes . Parece um bug para mim.

O que você pode tentar é preparar os dados durante a exportação.

Crie um plug-in com o seguinte conteúdo e ative-o antes de executar a exportação:

<?php
/**
 * Plugin Name: Slash my export
 * Description: Adds extra back slashes to exported data.
 */

add_filter( 'the_content_export', 'addslashes' );
add_filter( 'the_excerpt_export', 'addslashes' );

Eu não testei isso, pode estar errado, pode ter efeitos colaterais. stripslashes_deep() pode comer as barras extras também…

Você deve abrir um bug no Trac se este plugin resolver o seu problema.

    
por fuxia 29.04.2012 / 10:39
1

O problema da barra invertida que faltava foi informado ao WordPress aqui:

enlace

e principalmente corrigido em 0.6.3:

enlace

Infelizmente, o fato de que barras invertidas estão faltando em comentários também não foi relatado e não foi corrigido. Enviei um pedido de solicitação que espero que seja corrigido:

enlace

Note que o plugin também tem um novo bug que atribui uma categoria Uncategorized a cada post, mesmo que tenha uma categoria. Isso não está relacionado a esta questão, mas é algo a ser observado se você está pensando em usar este plugin. Discussão aqui:

enlace

Atualizar

A correção para barras invertidas nos comentários deve estar no próximo lançamento menor, 0.6.4:

enlace

    
por Mark Berry 31.03.2017 / 03:15
0

Recentemente, deparei com esse problema também e criei uma solução que funcionou para mim. Em sua pasta de instalação do wordpress, navegue até a subpasta wp_includes e abra post.php. Minha versão continha a linha:

$data = wp_unslash( $data );

(O manual de referência da função wordpress diz que wp_unslash é o substituto do stripslashes_deep (), portanto, em uma versão mais antiga do wordpress, ele pode estar usando stripslashes_deep em vez do comando acima.)

Comentei esta linha, reimportei e todas as barras invertidas do LaTeX estavam lá. Espero que isso ajude.

    
por Maria Monks Gillespie 27.01.2015 / 17:55
0

Descobri que era mais fácil fazer uma pesquisa global e substituir por barras invertidas simples por barras invertidas duplas em um editor de texto. Eu estava preocupado que pudesse escapar de algumas coisas importantes no XML, então o seguinte bit do PowerShell mostrará a tag XML que cercava suas barras invertidas.

$r = Select-String '<([^>]*)>.*?\.*?' .\wordpress.2015-09-13.xml -AllMatches
$matches = $r | % { [PSCustomObject] @{ Tag = $_.Matches.Groups[1].Value; LineNumber = $_.LineNumber; Line = $_.Line } }
$matches

No meu caso, todos (exceto um) eram tags HTML do próprio conteúdo da postagem.

PS> $matches | Foreach-Object Tag | Sort -Unique
/font
/SPAN
BR
content:encoded
div
font color="#000000"
FONT face="Courier New"
FONT face=Times color=#000000
LI
P
span style="color: "
span style="color: #000000"
SPAN style="COLOR: #006400"
span style="color: #cccc66; background-color: #012456"
SPAN style="COLOR: blue"
SPAN style="COLOR: green"
SPAN style="COLOR: maroon"
wp:comment_author

Eu dei uma olhada no post wp: comment_author (alguém tinha barras invertidas no nome), e o nome deles foi muito bem colocado no post.

    
por LeeHolmes 14.09.2015 / 04:47

Tags