web-dev-qa-db-ja.com

The_Contentフィルタで画像ソースを修正しますか?

私は正規表現についてはあまり経験がありませんが、すべての画像のSRCを修正するためにthe_content()get_the_content()を通してフィルタリングする関数を作成しようとしています。意図された目的は、URLを変更してhttp://i0.wp.com/の代わりにhttp://を使用することです。これにより、PostはPhotonのJS側を必要とせずにPhoton APIを利用することができます。

これを達成するためにフィルタを使用してthe_content()にフックする必要があることを私は知っていますが、私はstr_replace()を使用してこれを一致させることができなかったので、preg_replace()を使用することはうまくいくと思います。

また、URLの最後に?quality=70&strip=allを追加することが可能であるなら、これはページスピードを下げるのを助けるでしょう。

何かご意見は?

1
Austin Biggs

やるだけやってみよう:

$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);

$パターンは非常にシンプルで非常に特殊です。もう少し一般化する必要があるかもしれませんが、進むべき方向を示しているはずです。例えば。空白の可能性はありません。この面倒を見ようとする最初の試み:

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