You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress中Echo无法输出CDATA标签问题求助

WordPress RSS订阅源CDATA输出问题解决方案

问题分析

你直接在functions.php中用echo输出的方式不符合WordPress的RSS生成机制,WP会通过内置钩子自动处理RSS内容,你的自定义输出会被默认逻辑覆盖。另外修改核心文件(post-template.php)不仅不推荐(WP更新后修改内容会丢失),也没命中正确的处理节点。

解决方案

使用WordPress的rss2_item钩子替换默认的description输出,具体代码如下:

// 移除默认的RSS内容输出钩子
remove_action('rss2_item', 'the_content_rss', 10);

// 添加自定义的RSS description输出
add_action('rss2_item', 'custom_rss_description');
function custom_rss_description() {
    // 提取文章内容并去除HTML标签
    $content = strip_tags(get_the_content());
    // 输出带CDATA的description节点
    echo '<description><![CDATA[' . $content . ']]></description>';
}

补充说明

  • CDATA区块无需对内容做htmlentities转义,因为CDATA本身就是用来容纳任意文本(包括特殊字符),避免XML解析器解析其中内容,直接放入strip_tags后的内容即可。
  • 若需要保留部分HTML标签(如换行、链接),可修改strip_tags的第二个参数,示例:strip_tags(get_the_content(), '<a><br>')。
  • 若问题仍存在,暂时禁用所有插件、切换到默认主题(如Twenty Twenty-Four)测试,排查是否有其他代码干扰RSS生成。

内容的提问来源于stack exchange,提问作者Pritam Mullick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 10:12:03