从RSS源中移除图片

3
我正在使用WordPress构建一个网站,需要从另一个站点拉取RSS源并在页面上显示。我已经成功地拉取了它,并限制了项目的数量。我已经想出了如何截取描述以将其限制为一定数量的字符。
然而,如果文章中有图片,则截断会变得混乱。我尝试了许多不同的方法来剥离'img'标签,但都没有成功。如何正确地解决这个问题,任何指导都将不胜感激。以下是博客部分的代码:
<?php 
//fetch rss feed 
$rss = fetch_feed('http://solar.greenstreetsolarpower.com/blog/rss.xml');
$rss->strip_htmltags('img');
// Checks that the object is created correctly
if ( ! is_wp_error( $rss ) ) : 
    //figure total items and limit to 3
    $maxitems = $rss->get_item_quantity( 3 ); 
    //build array of all times starting with first element
    $rss_items = $rss->get_items( 0, $maxitems );
else: 
    echo 'RSS Feed is broken';
endif; ?>

<section>
    <div class="blog-header">
        <h2>Power Blog</h2>
    </div>
    <div class="row">
        <?php foreach ( $rss_items as $item ) : 
        $excerpt = $item->get_description();
        $excerpt = substr($excerpt, 0, 120);
        ?>
        <div class="small-12 medium-4 columns blog-excerpt">
            <h3><?php echo esc_html( $item->get_title() ); ?></h3>
            <p style="font-size: .8em !important;"><?php echo $excerpt; ?></p>
            <a href="<?php echo esc_url( $item->get_permalink() ); ?>" title="<?php printf( __( 'Posted %s', 'my-text-domain' ), $item->get_date('j F Y | g:i a') ); ?>">Continue</a>
        </div>

        <?php endforeach; ?>
    </div>

</section>

感谢任何帮助!
1个回答

0

我做了这个更改,但仍然没有得到正确的结果。当我这样做时,它会删除整个描述,而不仅仅是 'img' 标签。你有任何想法为什么会这样吗? - Alexander Agosta
RSS有很多变体,它们的工作方式都不相同。您可能需要验证RSS源以确保这不会引起问题。一般来说,如果RSS源不符合解析器的标准,解析器将会崩溃。 - Erik W
如果SimplePie解析器的strip_htmltags方法发现任何违规标签,它也可能使描述无效。您可以尝试使用encode_instead_of_strip方法。http://simplepie.org/wiki/reference/simplepie/encode_instead_of_strip - Erik W

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接