###phpでamp-imgタグの入れ子でamp-imgを挿入したいです。
プラグイン「AMP」を使用し、WordPressをamp化しています。
画像がない場合にfallbackとしてamp-imgを挿入したく試みました。
amp-imgのfallback使用例
下記のようなコードを作成しましたがうまく動作しませんでした。
getElementsByTagNameの引数を(’p’)などにしたら、pタグの子要素にうまく挿入されます。
なのでadd_filterのタイミングに問題があるかと考えています。
ご教授いただければ幸いです。よろしくお願いいたします。
###該当のソースコード
add_filter( 'the_content', 'insert_amp_img'); function insert_amp_img($html) { $doc = new DOMDocument(); $doc->loadHTML( mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8') ); $tags = $doc->getElementsByTagName(‘amp-img’); foreach ($tags as $tag) { $url = “imgurl/offline.png"; $amp = $doc->createElement("amp-img"); $amp->setAttribute('src', $url); $amp->setAttribute('fallback', ''); $amp->setAttribute('width', '720px'); $amp->setAttribute('height', '480px'); $amp->setAttribute('layout', 'responsive'); $tag->appendChild($amp); } $out = mb_convert_encoding($doc->saveHTML(), 'utf-8', 'HTML-ENTITIES'); return $out; }
あなたの回答
tips
プレビュー