@Sumit tarafından belirtildiği gibi, bir sayfa için yorum beslemesini kapatmanız gerekir (varsayılan olarak sayfalarda yorumlar kapalı olduğu için gerçekten garip buluyorum?) ... Bu ile sonuçlandım (sayfa yorumlarını almak için izin veriyorum) ?withcomments=1
istenirse besleyin ):
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;
}
}
Ancak sayfa içeriğini görüntülemek için, feed şablonu aslında rss_use_excerpt
tam metin mi yoksa özet mi görüntüleneceğine (Ayarlar -> Okuma sayfasında ayarlanır) karar vermeyi denediğinden, tam içeriğin bir sayfa feed'i için görüntülenmesini istiyorsanız bunun geçersiz kılınması gerekir ( böylece ana seçeneği yayınlar için istediğiniz gibi ayarlayabilirsiniz.) Aksi takdirde, içerik başka ne yaparsanız yapın içerik alanı yerine feed'in açıklama alanına gelebilir.
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;
}
Ve son olarak, bir sayfa alıntısı görüntülemek için RSS açıklama alanını almak için, bunu yapmak zorunda kalabilirsiniz (temelde wp_trim_excerpt
olmadan bir kopyasıdır strip_shortcodes
) - iyi, yine de yaptım ama sayfadaki bazı garip kısa kod davranışlarından kaynaklanıyor olabilir test ediyordu:
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;
}