是否在ATOM提要上运行wp_kses_decode_Entities?

时间:2012-07-27 作者:James Greig

我只想将atom提要中的htmlentities转换为相应的字符。

在我的函数中使用下面的。php我已经接近了,但很明显,注释掉的行不起作用,并且更改应用于我的所有提要。

有没有办法使用过滤器/挂钩来做到这一点?

谢谢

function decode_feed_entities($content) {
    return wp_kses_decode_entities($content);
}
// add_filter(\'do_feed_atom\', \'decode_feed_entities\');
add_filter(\'the_content_feed\', \'decode_feed_entities\');
add_filter(\'the_excerpt_rss\', \'decode_feed_entities\');

1 个回复
SO网友:sanchothefat

好的,在那里!这个do_feed_atom 过滤器应该是一个操作挂钩,您可以在其中添加过滤器:

// add our filters when we\'re in atom feed context
add_action(\'do_feed_atom\', \'add_decode_feed_entities_filters\', 9);    

function add_decode_feed_entities_filters() {
    add_filter(\'the_content_feed\', \'decode_feed_entities\');
    add_filter(\'the_excerpt_rss\', \'decode_feed_entities\');
}

function decode_feed_entities($content) {
    return wp_kses_decode_entities($content); 
}
进去看看wp-includes/default-filters.php 从第162行(在wp3.4.1中)获取所有可能需要添加解码的过滤器。

或者,您可以使用is_feed(\'atom\') 有条件的:

function decode_feed_entities( $content ) {
    if ( is_feed( \'atom\' ) )
        return wp_kses_decode_entities( $content ); 
    return $content;
}

结束