如何修复由引用引起的无效 WordPress 提要?
How to fix invalid WordPress feed caused by quote?
我有一个带有自定义分类法的 WordPress 网站。我使用 Mailchimp 为每个分类提要自动发送时事通讯。大多数提要都有效,但标题中有引号的提要无效。
例如,您可以看到标题为“Val d'Oise”的 Feed 无效:https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fwww.verdi-immobilier.com%2Fdepartements%2F95-val-doise%2Ffeed%2F。
它 returns 错误 XML 解析错误:<unknown>
:11:24: undefined entity。经测试,确实是引用引起的问题
这是提要:
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title>95 – Val-d’oise – Verdi Immo</title>
<atom:link href="https://www.verdi-immobilier.com/departements/95-val-doise/feed/" rel="self" type="application/rss+xml" />
<link>https://www.verdi-immobilier.com</link>
<description>Le dernier recours des propriétaires</description>
<lastBuildDate>2019-11-01 06:24:28</lastBuildDate>
<language>fr-FR</language>
<sy:updatePeriod>
hourly </sy:updatePeriod>
<sy:updateFrequency>
1 </sy:updateFrequency>
<image>
<url>https://www.verdi-immobilier.com/wp-content/uploads/2019/09/cropped-logo-ico-32x32.png</url>
<title>95 – Val-d’oise – Verdi Immo</title>
<link>https://www.verdi-immobilier.com</link>
<width>32</width>
<height>32</height>
</image>
</channel>
</rss>
'好像没有解释。
你们知道怎么解决吗?
错误答案:
这不是引述:
–
wordpress 将其转换为破折号
https://en.wikipedia.org/wiki/Dash
破折号不是 UTF-8 字符。试试这个编码:
<?xml version="1.0" encoding="UTF-16"?>
编辑:
正确答案:你是对的,问题是'-无效。
能否尝试将 post 标题中的 ’ 替换为
’
(有效且相同的字符)在前端显示了 ’,我希望 xml 输出中的编码字符也是有效的。
替换:
Val-d’oise
与:
Val-d’oise
在post-title。
它很脏,但我希望这对您有所帮助。我认为 WordPress 几年前也有类似的错误。
问候汤姆
我不认为是 –
导致了问题 - 而是 ’
您可以通过将 XML 文本粘贴到 XML 验证器来测试它在 https://xmlvalidation.com/
用 ’
代替 ’
似乎通过了该验证器页面上的测试。
我不知道如何让您的 Wordpress 提要发出 ’
那是您的下一个项目。祝你好运!
我有一个带有自定义分类法的 WordPress 网站。我使用 Mailchimp 为每个分类提要自动发送时事通讯。大多数提要都有效,但标题中有引号的提要无效。
例如,您可以看到标题为“Val d'Oise”的 Feed 无效:https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fwww.verdi-immobilier.com%2Fdepartements%2F95-val-doise%2Ffeed%2F。
它 returns 错误 XML 解析错误:<unknown>
:11:24: undefined entity。经测试,确实是引用引起的问题
这是提要:
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title>95 – Val-d’oise – Verdi Immo</title>
<atom:link href="https://www.verdi-immobilier.com/departements/95-val-doise/feed/" rel="self" type="application/rss+xml" />
<link>https://www.verdi-immobilier.com</link>
<description>Le dernier recours des propriétaires</description>
<lastBuildDate>2019-11-01 06:24:28</lastBuildDate>
<language>fr-FR</language>
<sy:updatePeriod>
hourly </sy:updatePeriod>
<sy:updateFrequency>
1 </sy:updateFrequency>
<image>
<url>https://www.verdi-immobilier.com/wp-content/uploads/2019/09/cropped-logo-ico-32x32.png</url>
<title>95 – Val-d’oise – Verdi Immo</title>
<link>https://www.verdi-immobilier.com</link>
<width>32</width>
<height>32</height>
</image>
</channel>
</rss>
'好像没有解释。 你们知道怎么解决吗?
错误答案: 这不是引述:
–
wordpress 将其转换为破折号
https://en.wikipedia.org/wiki/Dash
破折号不是 UTF-8 字符。试试这个编码:
<?xml version="1.0" encoding="UTF-16"?>
编辑: 正确答案:你是对的,问题是'-无效。
能否尝试将 post 标题中的 ’ 替换为
’
(有效且相同的字符)在前端显示了 ’,我希望 xml 输出中的编码字符也是有效的。
替换:
Val-d’oise
与:
Val-d’oise
在post-title。
它很脏,但我希望这对您有所帮助。我认为 WordPress 几年前也有类似的错误。
问候汤姆
我不认为是 –
导致了问题 - 而是 ’
您可以通过将 XML 文本粘贴到 XML 验证器来测试它在 https://xmlvalidation.com/
用 ’
代替 ’
似乎通过了该验证器页面上的测试。
我不知道如何让您的 Wordpress 提要发出 ’
那是您的下一个项目。祝你好运!