WordPress内容过滤器导致图像链接断开


wordpress content filter causing image link to break

我写了一个插件来删除博客非注册成员的链接,但是该插件导致图像链接变得错误,以下是我写的内容过滤器:

if ( is_user_logged_in() ) {
    // Do nothing.  All is well.
} else {
    $doc = new DOMDocument();
    $doc->loadHTML($content);
    $dom_xpath = new DOMXpath($doc);
    foreach($doc->getElementsByTagName('a') as $link)
        $link->setAttribute('href', $UNREGISTERED_LINK_HREF);
    $texts = $dom_xpath->query('//a/child::text()');
    foreach ($texts as $text)
    {
        $text->data = $UNREGISTERED_LINK_TEXT;
    }
    $content = $doc->saveHTML();
}

正确的图像链接:http://electrouniverse.net/wp-content/uploads/2012/08/Kyle-Geiger-%E2%80%93-Relentless-SOMA343D-240x240.jpg

过滤链接后:http://electrouniverse.net/wp-content/uploads/2012/08/Kyle-Geiger-%C3%A2%C2%80%C2%93-Relentless-SOMA343D-240x240.jpg

我尝试使用 utf8_decode() 和 utf8_encode() 来解决此问题,但没有帮助。

$doc->loadHTML($content);之前使用以下方法:

$content = mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8');