”属性「decoding」はタグ「amp-img」で使用できません”対策とし、AMPのみタグ削除

”属性「decoding」はタグ「amp-img」で使用できません”対策とし、AMPのみタグ削除

申し訳ありませんが、当初、正規表現で記載したコードを(他の方のサイトからの転記で)記載していましたが、正規表現の確認不足だったようです。
その結果、AMPサイトがきちんと表示されていませんでした。
以下では単純に’decoding=”async’を除去する表現に変更しました。結果AMPサイトの稼働も確認しましたので、よろしくお願いします(2023/1/25)
再度やや修正しました(2/1)

WordPressを6.1にアップデートしますと、AMPエラーが大発生しました。
下図の「許可されていない属性また属性値がHTMLタグにあります」のエラーです。

なお、急に最近増加した原因について検索してみたところでは
WordPressの更新により新規の属性が付与されることになり、それがAMPのルールとあわない、ということのようです。

詳細のエラー文面はというと、”属性「decoding」はタグ「amp-img」で使用できません”です。

こちらこちらなど参照しまして、以下のように対処しました。

・「テーマのための関数(functions.php)」に以下を追記しました。
・AMP判別関数はこちらの際に記載したものを11行目までに記載しました。
・19行目を入れると、こちらのlazyloadの対策になりそうです。
 しかし上記リンク先に記載の、別な対応をしていますので、自分は入れていません。

  1. // AMP判別関数
  2. function is_amp(){
  3. $is_amp = false;
  4. if (empty($_GET[‘amp’]) ) {
  5. return false;
  6. }
  7. if (is_single() && $_GET[‘amp’] === ‘1’){
  8. $is_amp = true;
  9. }
  10. return $is_amp;
  11. }
  12. //decoding除去
  13. function convert_body_amp($the_content){
  14. if(!is_amp()){
  15. return $the_content;
  16. }
  17. $the_content = preg_replace(‘/decoding=”async”/i’,”, $the_content);
  18. // loading属性を取り除く場合
  19. $the_content = preg_replace(‘/loading=”lazy”/i’,”, $the_content);
  20. return $the_content;
  21. }
  22. add_filter(‘the_content’,’convert_body_amp’);

こちらを適用しますと、早速、エラー数が減少しはじめました。

再度確認すると、さらに減少していました。

無事対処完了しました!

困っておられる方は参考お願いします。

おしまい!

ワードプレスカテゴリの最新記事