申し訳ありませんが、当初、正規表現で記載したコードを(他の方のサイトからの転記で)記載していましたが、正規表現の確認不足だったようです。
その結果、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の対策になりそうです。
しかし上記リンク先に記載の、別な対応をしていますので、自分は入れていません。
- // AMP判別関数
- function is_amp(){
- $is_amp = false;
- if (empty($_GET[‘amp’]) ) {
- return false;
- }
- if (is_single() && $_GET[‘amp’] === ‘1’){
- $is_amp = true;
- }
- return $is_amp;
- }
- //decoding除去
- function convert_body_amp($the_content){
- if(!is_amp()){
- return $the_content;
- }
- $the_content = preg_replace(‘/decoding=”async”/i’,”, $the_content);
- // loading属性を取り除く場合
- $the_content = preg_replace(‘/loading=”lazy”/i’,”, $the_content);
- return $the_content;
- }
- add_filter(‘the_content’,’convert_body_amp’);
こちらを適用しますと、早速、エラー数が減少しはじめました。
再度確認すると、さらに減少していました。
無事対処完了しました!
困っておられる方は参考お願いします。
おしまい!
コメント