使用unctions.php删除图像中的链接

时间:2011-11-14 作者:digitalbart

我正在寻找一种方法来删除后文内容中图像的附件链接。

我想将此添加到函数中。php在我的主题中。我知道你可以在每个图片的基础上在帖子中禁用它,但我只想在我的函数中这样做一次。php页面。有什么想法吗?

谢谢Bart

1 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

add_filter( \'the_content\', \'attachment_image_link_remove_filter\' );

function attachment_image_link_remove_filter( $content ) {
    $content =
        preg_replace(
            array(\'{<a(.*?)(wp-att|wp-content\\/uploads)[^>]*><img}\',
                \'{ wp-image-[0-9]*" /></a>}\'),
            array(\'<img\',\'" />\'),
            $content
        );
    return $content;
}
regex可能更简单,不幸的是,这也剥夺了您独特的wp-image-xxx (其中xxx是附件ID)的类<img> 标签,但这是我能想到的最安全的only 删除附件图像周围的链接,保留文本链接以及非附件图像周围的链接不变。

如果您不关心非附件图像,并且希望帖子内容中的所有图像都不被包装在链接中,那么这就足够了:

function attachment_image_link_remove_filter( $content ) {
    $content =
        preg_replace(array(\'{<a[^>]*><img}\',\'{/></a>}\'), array(\'<img\',\'/>\'), $content);
    return $content;
}
但我可以看到,如果锚的内部终止于其他一些自动关闭的元素,例如<br /> 标签这显然很少见,但我建议使用第一个版本,尽管版本更长。

结束

相关推荐

Multiple permalinks

我的博客使用/?p=378 多年的permalink构造。这对Google Analytics没有多大帮助,我想把它改为YEAR/MONTH/DAY/post-title 结构有没有一种方法可以做到这一点而不丢失向后兼容性,以便旧的链接可以工作?