为什么当我通过WordPress Importer插件导入XML文件时,我的博客中所有的斜杠都丢失了,即“\\”?

时间:2012-04-28 作者:shuiruge

当我想借助WordPress导入器插件导入XML文件时,导入的博客将丢失所有斜杠,即“\\”,它们实际上包含在导入的XML文件中。

由于我必须使用LaTeX插件(LaTeX for WordPress插件),它变得很糟糕。

事实上,可能在几周前,它运行得很好。根本没有这样的问题。但有一天,我发现一切都变了。TT

有人知道发生了什么吗?非常感谢!

4 个回复
SO网友:fuxia

进口商致电wp_insert_post() 其中运行stripslashes_deep() 在数据上。但是导出器没有运行addslashes. 在我看来像个虫子。

您可以尝试在导出期间准备数据。

创建包含以下内容的插件并将其激活before 运行导出:

<?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\' );
我没有测试过这个,可能是错误的,可能有副作用。stripslashes_deep() 可能也会吃额外的斜线…

你应该open a bug on Trac 如果此插件修复了您的问题。

SO网友:Mark Berry

此处向WordPress报告了缺少反斜杠的问题:

https://core.trac.wordpress.org/ticket/21007

大部分固定在0.6.3中:

https://wordpress.org/plugins/wordpress-importer/#changelog

不幸的是,反斜杠在注释中丢失的事实没有报告,也没有得到修复。我已经提交了一个拉取请求,希望能够解决它:

https://github.com/boonebgorges/wordpress-importer/pull/6

请注意,插件还有一个新的bug,它为每个帖子分配了一个未分类的类别,即使它确实有一个类别。这与这个问题无关,但如果您正在考虑使用此插件,则需要注意。此处讨论:

https://core.trac.wordpress.org/ticket/39301

Update

注释中反斜杠的修复应在下一个次要版本0.6.4中:

https://core.trac.wordpress.org/ticket/21007#comment:11

SO网友:Maria Monks Gillespie

我最近也遇到了这个问题,并想出了一个适合我的解决方案。在wordpress安装文件夹中,浏览到子文件夹wp\\u includes并打开post。php。我的版本包含以下行:

$data = wp_unslash( $data );
(wordpress函数参考手册指出,wp\\u unslash是不推荐使用的stripslashes\\u deep()的替代品,因此在旧版本的wordpress中,它可能使用stripslashes\\u deep来代替上面的命令。)

我把这行注释掉,重新导入,我所有的乳胶反斜杠都在那里。希望这有帮助。

SO网友:LeeHolmes

我发现在文本编辑器中进行全局搜索并将单个反斜杠替换为双反斜杠是最简单的。我担心它可能会漏掉XML中的一些重要内容,因此下面的PowerShell将告诉您反斜杠周围的XML标记。

$r = Select-String \'<([^>]*)>.*?\\\\.*?\\1\' .\\wordpress.2015-09-13.xml -AllMatches
$matches = $r | % { [PSCustomObject] @{ Tag = $_.Matches.Groups[1].Value; LineNumber = $_.LineNumber; Line = $_.Line } }
$matches
在我的例子中,所有(除了一个)都是来自帖子内容本身的HTML标记。

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
我看了一下wp:comment\\u作者的帖子(有人的名字中有反斜杠),他们的名字把fine引入了帖子中。

结束

相关推荐

WordPress“类别到标签的转换器”不起作用。改为指向Import.php

我刚把博客上的帖子导入wordpress。在这样做的过程中,出于某种奇怪的原因,标签被转换为类别。我现在正试图使用wordpress的内置转换器将它们转换回标签。然而,每当我单击“Category to tag converter”链接时,它都会将我引导到导入页面“/import.php”。我能做些什么来纠正这一点吗。或者,请某人复制转换工具页面的URL结尾,并粘贴到此处,以便我可以将其附加到我的博客URL。我猜这可能同时奏效。提前欢呼。。