You need to enable JavaScript to run this app. WordPress RSS Feed修改:rule_short_summary加入content:encoded返回空
优惠活动
大模型
产品
解决方案
定价
更多

WordPress RSS Feed修改:rule_short_summary加入content:encoded返回空

代码现存的核心问题
  • 变量传值不匹配:函数内定义了小写$post_id存储当前文章ID,后续调用get_the_terms()时误写为大写$post_ID,该变量未定义会直接导致取值流程中断
  • 返回值格式错误:get_the_terms()获取自定义分类法关联内容时,返回值为对象数组或错误对象,并非可直接嵌入内容流的纯文本,直接返回会导致RSS内容渲染为空
  • 内容拼接逻辑缺失:函数接收的$content参数是feed原有正文内容,原代码没有将取值和原有内容做整合,直接返回自定义取值的逻辑不符合feed输出的预期
修正后的可运行代码

将以下代码放置到主题的functions.php文件或自定义功能插件中即可生效:

function my_add_to_content_in_feed($content) {
    // 仅在主循环的feed场景下执行,避免其他位置误触发
    if (!is_feed() || !in_the_loop() || !is_main_query()) {
        return $content;
    }
    $post_id = get_the_ID();
    // 获取对应自定义分类法的关联项
    $rule_short_summaries = get_the_terms($post_id, 'rule_short_summary');
    // 校验返回值有效性,排除空值、WP错误对象的异常场景
    if (is_array($rule_short_summaries) && !is_wp_error($rule_short_summaries)) {
        // 提取所有摘要项名称,拼接为可读的HTML块
        $summary_html = '<div style="margin:1em 0; padding:1em; background:#f5f5f5;">' .
                        '<strong>规则摘要:</strong>' .
                        join('、', wp_list_pluck($rule_short_summaries, 'name')) .
                        '</div>';
        // 将摘要块附加在原有正文前,同步保留原有内容
        $content = $summary_html . $content;
    }
    return $content;
}
add_filter('the_content_feed', 'my_add_to_content_in_feed');
关键实现说明
  • 增加场景判断逻辑,确保代码仅在RSS Feed渲染的主循环中执行,不会干扰前台页面、后台的内容输出
  • 所有取值环节增加异常校验,避免分类法不存在、文章无关联摘要时触发PHP报错
  • 使用wp_list_pluck批量提取术语名称,替代手动循环的冗余代码,提升运行效率
  • 输出的摘要块自带基础样式,在RSS阅读器中可以和原有正文形成清晰区分,不会出现内容混杂的问题

内容的提问来源于stack exchange,提问作者Steve Scott

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 15:24:07