ตามที่กล่าวไว้โดย @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;
}