解决 Wordpress 标题中出现的 x08 ascii 字符导致 rss 出错的问题

一直被 rss 中的乱码所耽误,直到 @emdoe 提供了灵感,终于解决了这个问题。

可以看相关帖子:


解决方案是这样的,由于 ascii 字符只会莫名其妙的出现在标题中,那么直接过滤掉即可,代码如下,顺便把内容里也过滤了,放到模板的 functions.php 文件中即可:

// REMOVE ascii in feed
function remove_ascii( $data ) {
    $ascii = '/[\x08]/';
    $data['post_content'] = preg_replace($ascii, '', $data['post_content']);
    $data['post_title'] = preg_replace($ascii, '', $data['post_title']);
    return $data;
}
add_filter( 'wp_insert_post_data' , 'remove_ascii' , 10, 1);

上次折腾之后本想测试一段时间,结果就忘记了分享。不过经过差不多6个月的使用,还真的没有再出现过同类的问题。

同样感谢 @dms 提供的思路。

这有点一刀切的感觉…