Seriously Simple Podcasting (SSP) 版本 2.23.0 及之前,存在生成未经 W3 Validator 验证的 RSS feed 的问题。
一些用户在他们的 WordPress 博客上强调了这个问题,但从未真正深入解决过。我什至阅读了 2019 年的索赔声明。
因为我有几个来自客户的播客被从 Google 降级,我通过向 Google 播客支持询问,他们强调了 RSS 源与 W3 验证器的不一致性。
我请求插件的支持,但我得到的只是一个答案(简而言之):在我们的验证器上一切都很好。 W3 验证器有一些问题。
好吧,但谷歌想要别的东西。
我找到了修正代码的方法,在这里分享给大家。 如果您对这个插件有同样的问题,您可以修复它。
当然,我也将这些更正发送给了 Castos,希望他们能够尽快实施。
重要: 我在这里建议的所有更正,均参考插件的2.23.0版本。
同时: 关闭此插件的自动更新:关闭(以避免任何更新都会删除您所做的所有操作),然后进入您的 WordPress 仪表板
Plugins > Installed Plugins > in the search filed type "ssp" (without quotes)
然后就会出现Seriously Simple Podcasting。
在最后一列中单击
Disable auto-updates
,如下面的屏幕截图所示
1. SOLUTION - UNDEFINED ITEM ELEMENT: IMAGE
截图:
这是由于存在标签
<image></image>
,不应在任何专用于播客的 RSS ITEM 中声明该标签。仅在播客本身的 RSS 标题 (<channel></channel>
) 中承认这一点,但在剧集标签 <item></item>
中不承认,如此处所述 https://www.rssboard.org/rss-specification
要删除
<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>
2. SOLUTION - ITUNES:EXPLICIT MUST BE "TRUE" OR "FALSE"
截图:
在标签
itunes:explicit
内,Castos 声明了clean
和yes
。这对 W3 验证器来说是不喜欢的。
要解决此问题,请编辑文件:
/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';
}
3. SOLUTION - IMAGE LINK DOESN'T MATCH CHANNEL LINK
截图:
这意味着在标题图像中声明的链接不是指向播客的链接。 事实上,它会转到网站的主 URL 域,但不会处理播客及其剧集。 结果是
<link>https://www.example.com/</link>
而不是(下面只是一个例子):
<link>https://www.example.com/rss/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已经被过滤了
在这里,您已准备好并已通过验证
4. USE OF INKNOWN NAMESPACE: http://www.google.com/schemas/play-podcasts/1.0
截图:
这很不幸,因为这属于 Google。 我已经向 Google 播客支持强调了这个问题,但尚未得到任何答复。 如果我有解决方案,我将很乐意编辑这篇文章并添加它。
但是,正如我已经预料到的,如果您应用前 3 次更正,您就会得到验证。第4点暂时不管。
结论 所有这些模组都不会对任何平台上现有的播客及其剧集产生负面影响。 完全保留您网站的 RSS 提要页面的人类可读性。
我希望它有用。 希望Castos最终能提供紧急更新
感谢您的阅读
我的帖子中报告的所有问题的解决方案。 这将帮助所有用户应用该解决方案并通过 W3 RSS Validator 进行验证