正如@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
以确定是显示全文还是摘要(在“设置”->“阅读页面”上设置),因此,如果要显示页面提要的全部内容,则需要覆盖此内容(这样您就可以将main选项设置为任何您喜欢的帖子。)否则,您执行的其他任何操作内容都可能会出现在供稿的description字段中,而不是content字段中。
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;
}