如何修复由引用引起的无效 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 &#8211; Val-d&rsquo;oise &#8211; 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 &#8211; Val-d&rsquo;oise &#8211; Verdi Immo</title>
    <link>https://www.verdi-immobilier.com</link>
    <width>32</width>
    <height>32</height>
</image> 
</channel>
</rss>

'好像没有解释。 你们知道怎么解决吗?

错误答案: 这不是引述:

&#8211;

wordpress 将其转换为破折号

https://en.wikipedia.org/wiki/Dash

破折号不是 UTF-8 字符。试试这个编码:

<?xml version="1.0" encoding="UTF-16"?>

编辑: 正确答案:你是对的,问题是'-无效。

能否尝试将 post 标题中的 ’ 替换为

&#8217; 

(有效且相同的字符)在前端显示了 ’,我希望 xml 输出中的编码字符也是有效的。

替换:

Val-d’oise

与:

Val-d&#8217;oise

在post-title。

它很脏,但我希望这对您有所帮助。我认为 WordPress 几年前也有类似的错误。

问候汤姆

我不认为是 &#8211; 导致了问题 - 而是 &rsquo; 您可以通过将 XML 文本粘贴到 XML 验证器来测试它在 https://xmlvalidation.com/

&#8217; 代替 &rsquo; 似乎通过了该验证器页面上的测试。

我不知道如何让您的 Wordpress 提要发出 &#8217; 那是您的下一个项目。祝你好运!