ページ上のすべての画像を見つけて、必要に応じてソースを変更する方法を見つけようとしています。これが私がこれまでに持っているものです:
add_filter('the_content','wpdu_image_replace');
function wpdu_image_replace($content) {
$upload_dir = wp_upload_dir();
$pattern = '/<img.*src="(.*?)".*?>/';
$replacement = wpdu_base64_encode_image($upload_dir['path'].'/'.\1);
return preg_replace( $pattern, $replacement , $content );
}
ただし、次の 3 つの問題があります。
- サーバー上の相対パスを使用して「src」タグから始めていますが、次のことを確認するチェックはありません。
- 画像はサーバー上に実際に存在します
- 画像がそうである場合、URL は相対的に指定されているかどうか
- 変数
$replacement
が間違っています (src タグだけにあるものを出力する方法がわかりません) - 置換でタグを宣言する必要はありません
<img>
。それを囲む他のすべてのもの (クラス、ID など) が失われるからです。
画像のソースだけを取得して、私が説明している方法でそれを置き換える方法を知っている人はいますか? 代替手段としてSimple HTML DOMを検討しましたが、ひどいパフォーマンス結果が得られました。どんな助けでも大歓迎です。ありがとう!