在单个页面中使用过滤器替换图像URL(绝对URL而不是相对URL)

时间:2012-03-05 作者:PrivateUser

我正在使用一个名为Foliopress WYSIWYG. 使用此插件时,在\\u内容循环中找到的图像使用相对图像路径而不是绝对路径。所以所有的feed图像看起来都坏了。

此插件将图像存储在http://mysite.com/images 改为文件夹wp-content/uploads 文件夹所以我想用过滤器来代替相对路径。

我的意思是如果任何img src文件/images/2010/03/example.jpg 然后将其过滤并替换为http://mysite.com/images/2010/03/example.jpg

有人能告诉我这个片段吗?谢谢

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

像这样的东西应该可以做到,你可能不得不摆弄preg_replace() 让它按您需要的方式工作,但概念(更重要的是,在imo中,还有regex)。

if( is_single() ) {
    add_filter( \'the_content\', \'wpse44503_filter_content\' );
}

function wpse44503_filter_content( $content ) {
    $regex = \'#src=("|\\\')\'.
        \'(/images/(19|20)(0-9){2}/(0|1)(0-9)/[^.]+\\.(jpg|png|gif|bmp|jpeg))\'.
        \'("|\\\')#\';
    $replace = \'src="\'.get_site_url( $2 ).\'"\';

    $output = preg_replace( $regex, $replace, $content );

    return $output;
}
这是未经测试的,我将其直接写入了解决方案框中,因此请确保彻底地进行调试。

结束

相关推荐

Force use of RSS 0.92 feed

只是想知道是否有一种优雅的方式可以迫使WordPress使用RSS 0.92提要?我提出这个问题的原因是,我们在站点的提要中添加了一些自定义XML标记,以便附带的iOS应用程序可以从提要中提取某些数据-WordPress最近反对使用RSS 0.92而支持RSS 2.0,这正在破坏该应用程序,因此恢复到RSS 0.92作为短期修复将是理想的。我将非常期待您的任何想法!亚历克斯