正如@Sumit所提到的,你需要关闭页面的评论提要(我觉得这很奇怪,因为默认情况下页面上的评论都是关闭的?)。。。这就是我最终得到的结果(允许获取页面评论提要?withcomments=1
如果需要):
add_action(\'pre_get_posts\', \'rss_page_feed_full_content\');
function rss_page_feed_full_content($q) {
// Check if it feed request and for single page
if ($q->is_main_query() && $q->is_feed() && $q->is_page()) {
//Set the comment feed to false
$q->set(\'post_type\', array(\'page\'));
// allow for page comments feed via ?withcomments=1
if ( (isset($_GET[\'withcomments\'])) && ($_GET[\'withcomments\'] == \'1\') ) {return;}
$q->is_comment_feed = false;
}
}
但用于显示页面内容,因为提要模板实际上会检查
rss_use_excerpt
要决定是显示全文还是摘要(在“设置->阅读页”上设置),如果要为页面提要显示完整内容,则需要覆盖此选项(以便可以将帖子的主选项设置为任何您喜欢的选项)否则,无论您做什么,内容都可能最终出现在提要的描述字段而不是内容字段中。
add_filter(\'pre_option_rss_use_excerpt\', \'page_rss_excerpt_option\');
function page_rss_excerpt_option($option) {
// force full content output for pages
if (is_page()) {return \'0\';}
return $option;
}
最后,为了让RSS描述字段显示页面摘录,您可能必须这样做(这基本上是
wp_trim_excerpt
没有
strip_shortcodes
) - 嗯,我还是这么做了,但这可能是因为我测试的页面上出现了一些奇怪的短代码行为:
add_filter(\'the_excerpt_rss\',\'rss_page_excerpt\');
function rss_page_excerpt($excerpt) {
if (is_page()) {
global $post; $text = $post->post_content;
// removed this line otherwise got blank
// $text = strip_shortcodes( $text );
$text = apply_filters( \'the_content\', $text );
$text = str_replace(\']]>\', \']]>\', $text);
$excerpt_length = apply_filters( \'excerpt_length\', 55 );
$excerpt_more = apply_filters( \'excerpt_more\', \' \' . \'[…]\' );
$excerpt = wp_trim_words( $text, $excerpt_length, $excerpt_more );
}
return $excerpt;
}