是否使用内容过滤器修改图像源(_C)?

时间:2015-11-06 作者:Austin Biggs

我对regex非常缺乏经验,但是我正在尝试创建一个过滤函数the_content()get_the_content() 以修改所有图像的SRC。预期目的是修改URL以使用http://i0.wp.com/ 而不是http://. 这将允许POST使用光子API,而不需要光子的JS端。。

我知道我需要the_content() 使用过滤器来实现这一点,但我无法使用str_replace(), 所以我假设使用preg_replace() 会有用的。

此外,如果可以添加?quality=70&strip=all 这将有助于降低页面速度。

有什么想法吗?

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

让我们试一试:

$str = \'<img src="http://myserver.mydomain/picture.png" />\';
$pattern =\'#<img src="http://.*/(.*)" />#\';
$replace = \'<img src="http://http://i0.wp.com/$1?quality=70&strip=all />"\';
$result = preg_replace($pattern, $replace, $str);
$模式非常简单且非常具体。您可能需要对其进行更多的概括,但它应该为您指明前进的方向。E、 g.它不考虑可能的空格。首次尝试解决此问题:

$pattern =\'#<\\s*img\\s*src\\s*=\\s*"http://myserver.mydomain/(.*)"\\s*/\\s*>#\';

相关推荐

Even/Odd every two posts

我需要每两篇文章显示一个不同的布局,是否可以使用偶数/奇数来实现这一点?<?php while (have_posts()): the_post() ?> <?php if ($wp_query->current_post % 2 == 0): ?> even <?php else: ?> odd <?php endif ?> <?php endwhile