WordPress Castos 插件:非常简单的播客 RSS 验证器问题。标签和命名空间中的错误

WordPress Castos plugin: Seriously Simple Podcasting RSS validator issues. Errors in tags and namespace

提问人:Tormy Van Cool 提问时间:10/6/2023 最后编辑:halferTormy Van Cool 更新时间:10/13/2023 访问量:104

问:

Serious Simple Podcasting (SSP) 版本 2.23.0 及更早版本存在生成未经 W3 验证器验证的 RSS 源的问题。

如何重现此问题

使用此 WordPress 插件和此版本 2.23.0 制作的任何 RSS 提要,将其添加到 W3 验证器中:

https://validator.w3.org/

它将返回下面解释的错误,对于每个错误,我都发布了一个解决方案。

重要提示

一些用户在他们的 WordPress 博客上强调了这个问题,但从未真正深入解决。我甚至从 2019 年开始阅读索赔。

因为我有几个来自客户的播客被 Google 降级了,所以我通过询问 Google 播客支持来询问它,他们强调了 RSS Feed 与 W3 Validator 的不符之处。

我请求插件的支持,但我得到的只是一个答案(简而言之):在我们的验证器上一切都很好。W3 Validator 存在一些问题

好吧,但谷歌想要别的东西。

以下是 W3 验证器的屏幕截图

Undefined Item Element: Image

Itunes:Explicit Must Be True Or False

Image Link Doesn't Match Channel Link

Use Of Unknown NameSpace

XML RSS 播客

评论


答:

0赞 Tormy Van Cool 10/6/2023 #1

以下是解决这些问题的方法。

重要

我在这里建议的所有更正都参考了插件的 2.23.0 版本。

同时

关闭此插件的自动更新:关闭(以避免任何更新都可以删除您所做的所有操作),然后进入您的 WordPress 仪表板

Plugins > Installed Plugins > in the search filed type "ssp" (without quotes)并且将出现 Serious Simple Podcasting

在最后一列中,单击如下屏幕截图所示:Disable auto-updates

Disable auto-update screenshot

解决方案 - 未定义的项目元素:图像

截图:

Undefined Item Element: Image

这是由于标签的存在,该标签不应在任何专用于播客的 RSS ITEM 中声明。它只在播客本身的 RSS 的标题 () 中被允许,但不在剧集的标签中,正如这里所描述的那样 https://www.rssboard.org/rss-specification<image></image><channel></channel><item></item>

要删除标签,请编辑文件:<image></image>

/wp-content/plugins/seriously-simple-podcasting/templates/feed/feed-item.php

删除以下报告的行:70, 71, 72 and 73

<image>
    <url><?php echo esc_url( $episode_image ); ?></url>
    <title><?php echo esc_attr( $title ); ?></title>
</image>

这些只是为了在人类可读的网站上显示每集的艺术作品。 W3 验证器不允许格式化。

为了能够在不破坏验证的情况下显示图稿,请在同一文件中更改第 36 行。它按如下方式交付:

<description><![CDATA[<?php echo $description; ?>]]></description>

删除它并粘贴下面这个:

<description><![CDATA[ <?php echo '<img src="' . esc_url( $episode_image ) . '" />'; ?> <?php echo $description; ?>]]></description>

解决方案 - Itunes:Explicit 必须为“true”或“false”

截图:

Itunes:Explicit Must Be True Or False

在标签中,Castos 声明了 和 。这不喜欢 W3 验证器。要解决此问题,请编辑文件:itunes:explicitcleanyes

/wp-content/plugins/seriously-simple-podcasting/php/classes/controllers/class-feed-controller.php

第 185 行应该是

    $itunes_explicit = $is_explicit ? 'true' : 'false'; // it was 'yes' : 'clean'

第 300、301、302、303、304、305、306 行应采用这种方式

    if ( $ep_explicit && $ep_explicit == 'on' ) {
        $itunes_explicit_flag     = 'true'; // it was YES
        $googleplay_explicit_flag = 'Yes';
    } else {
        $itunes_explicit_flag     = 'false'; // it was CLEAN
        $googleplay_explicit_flag = 'No';
    }

解决方案 - 图片链接与频道链接不匹配

截图:

Image Link Doesn't Match Channel Link

这意味着在标题图片中声明的链接不是指向播客的链接。事实上,它进入了网站的主 URL 域,但并没有通过其剧集来处理播客。结果是:

<link>https://www.example.com/</link>

而不是(下面只是一个例子):

<link>https://www.example.com/feed/allmypodcasts/my-specific-podcast</link>

要更正此问题,请编辑文件:

/wp-content/plugins/seriously-simple-podcasting/templates/feed-podcast.php

112 号线的交付方式如下:

<link><?php echo esc_url( apply_filters( 'ssp_feed_channel_link_tag', $home_url, $podcast_series ) ) ?></link>

将其更改为:

 <link><?php echo $feed_link ?></link>

注意:变量 $feed_link 已被过滤

在这里,你已经准备好了,你已经得到了验证


未知命名空间的使用:http://www.google.com/schemas/play-podcasts/1.0

截图:

Use Of Unknown Namespace

这很不幸,因为这属于谷歌。我已经向 Google 播客支持强调了这个问题,但我还没有得到任何答案。 当我有解决方案时,我很乐意编辑这篇文章并添加它。

但是,正如我已经预料到的那样,如果您应用前 3 个更正,您将得到验证。暂时不管第四点。

结论

所有这些模组都不会对任何平台上的任何预先存在的播客及其剧集产生负面影响。您网站的 RSS 提要页面的人类可读性得到充分保留。

我希望 Castos 最终会为他们的插件提供更新。

我在 GitHub 上发现了 CastosHD,所以我自己拉了这个请求,尽管它给我的感觉是一个废弃软件存储库。但是我试过了。