订阅器里每篇文章只有两行摘要,大约九十个字,后面跟着阅读更多,正文里的图片和代码全看不到,站上正文是完整的。日志里能对上时间点,这种反而好排。
feed 模板默认走 the_excerpt,输出全文要挂 the_content 或在 feed 模板里单独取正文。很多主题只在前台加过滤器,is_feed 判断没写,feed 请求走不到那段逻辑。摘要长度还被 excerpt_length 卡在五十五个词。这一点先确认清楚,后面就不用反复试。
add_filter('the_excerpt_rss', 'do_shortcode');
add_action('rss2_item', function(){
global $post;
echo '<content:encoded><![CDATA[' . apply_filters('the_content', $post->post_content) . ']]></content:encoded>';
});
围绕「RSS 输出全文」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。
报错里带路径的,先去看那个路径在不在、权限对不对。
处理上按这个顺序:在 rss2_item 里补 content:encoded 输出全文,别只依赖 description;过滤器里加 is_feed 判断,前台和 feed 分开处理;输出前把短代码跑一遍,否则 feed 里会残留方括号标记。
结果对不对很好判断,订阅器里每篇都能看到完整正文,代码块和图片正常渲染。
