Como lo mencionó @Sumit, debe desactivar la fuente de comentarios de una página (lo que me parece realmente extraño, ya que, de forma predeterminada, ¿los comentarios están desactivados en las páginas?) ... esto es lo que terminé (permitiendo obtener los comentarios de la página se alimentan con ?withcomments=1
si se desea):
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;
}
}
Pero para mostrar el contenido de la página, ya que la plantilla del feed realmente comprueba rss_use_excerpt
para decidir si se muestra el texto completo o el resumen (establecido en Configuración - > Página de lectura), esto debe anularse si desea el contenido completo. para mostrar un feed de página (de modo que pueda tener la opción principal configurada en lo que quiera para las publicaciones). De lo contrario, cualquier otra cosa que haga, el contenido puede terminar en el campo de descripción del feed en lugar del campo de contenido.
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;
}
Y finalmente, para obtener el campo de descripción RSS para mostrar un extracto de página, podría tener que hacer esto (que es básicamente una copia de wp_trim_excerpt
sin strip_shortcodes
) - bueno, yo Lo hice de todos modos, pero podría deberse a un extraño comportamiento de shortcode en la página que estaba probando:
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;
}