我有新闻聚合器的自定义RSS模板。是否可以从the_content_feed();
中排除所有媒体文件,例如图片/视频?
我需要显示纯文本。
这是我的模板
header( 'Content-Type: ' . feed_content_type( 'rss-http' ) . '; charset=' . get_option( 'blog_charset' ), true );
$frequency = 1;
$duration = 'hourly';
$postimages = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'large' );
if ( $postimages ) {
$postimage = $postimages[0];
} else {
$postimage = get_stylesheet_directory_uri() . '/images/default.jpg';
}
echo '<?xml version="1.0" encoding="UTF-8"?>' ."\r\n"; ?>
<rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<title><?php bloginfo_rss( 'name' ); wp_title_rss(); ?></title>
<link><?php bloginfo_rss( 'url' ) ?></link>
<description><?php bloginfo_rss( 'description' ) ?></description>
<yandex:logo></yandex:logo>
<yandex:logo type="square"></yandex:logo>
<lastBuildDate><?php echo mysql2date( 'D, d M Y H:i:s +0200', get_lastpostmodified( 'GMT' ), false ); ?></lastBuildDate>
<language><?php bloginfo_rss( 'language' ); ?></language>
<?php do_action( 'rss2_head' ); ?>
<?php while( have_posts()) : the_post(); ?>
<item>
<title><?php the_title_rss(); ?></title>
<link><?php the_permalink_rss(); ?></link>
<guid isPermaLink="false"><?php the_guid(); ?></guid>
<author><?php the_author(); ?></author>
<enclosure url="<?php echo esc_url( $postimage ); ?>" type="image/jpeg" />
<pubDate><?php echo mysql2date( 'D, d M Y H:i:s +0200', get_date_from_gmt(get_post_time('Y-m-d H:i:s', true)), false ); ?></pubDate>
<description>
<![CDATA[<?php the_excerpt_rss(); ?>]]>
</description>
<yandex:full-text>
<![CDATA[<?php the_content_feed(); ?>]]>
</yandex:full-text>
</item>
<?php endwhile; ?>
</channel>
</rss>
我试过使用这个过滤器,但没有运气:(
add_filter( "the_content_feed", "excludeimg" ) ;
function excludeimg($content) {
$content = preg_replace('#(<img.*?>).*?(/>)#', '$1$2', $content);
return $content;
}
?>
答案 0 :(得分:0)
这是解决方案
要显示RSS Feed中文章的纯文本,只需在Feed模板中将the_content_feed();
更改为echo wp_strip_all_tags( get_the_content() );
。