WordPress6.1にアップデートしたらdecoding属性が自動付与されてAMPエラーが出るようになったので対処したときのメモ [LION BLOG] の巻
はじめに
WordPress6.1にアップデートしたあたりから、どうやらほぼ全部のAMPページが無効になってしまいました。グーグルサーチコンソールで見るとこのようになっていました。
許可されていない属性または属性値がHMTLタグにあります。
ですって。HMTLタグって何よ。。。まあいいや。
もうちょっと詳しく見てみると、
属性「decoding」はタグ「amp-img」で使用できません 。
ということだそうです。
WordPress6.1からdecoding属性が自動で入るようになったのが原因ぽい。
注;デフォルトではloading属性も自動で入るようになっているのですが(WordPress5.5あたりから)、本ブログページではすでにloading属性を無効にする処理をしているので、loading属性は記載されていません。
と、いうわけで
decoding属性
をloading属性と同様にAMPページのときは無効にして対応してやることにします。
なお、本ブログで使用しているWordPressテーマ
LION BLOG ver.2.0.0
においての対応になります。
ですので他のテーマをお使いで本記事をご参考になさる場合は適宜調整してくださいませ。
やりかた
必要な対応は、
AMPページを表示するときにdecoding属性とloading属性を削除する処理をfunctions.phpに記述する
です。
注;本ブログではすでにloading属性の削除処理対応済みですので、実際にはdecoding属性の削除処理だけを追加しています。
LION BLOGはAMPに標準対応していて、imgタグなどをAMP用のタグに適宜置換してくれるんですけど、それはfunctions.phpで処理されています。
なので該当する処理のところに以下のコードを追記します。
だいたい6200行目あたり。(コードの下から探して行ったほうが早いです。)
//decoding属性を取り除く
$the_content = preg_replace('/ +decoding=["][^"]*?["]/i', '', $the_content);
$the_content = preg_replace('/ +decoding=[\'][^\']*?[\']/i', '', $the_content);
//loading属性を取り除く
$the_content = preg_replace('/ +loading=["][^"]*?["]/i', '', $the_content);
$the_content = preg_replace('/ +loading=[\'][^\']*?[\']/i', '', $the_content);
functions.phpを編集するわけですが、エックスサーバーでWordPressを利用している場合、WordPressの管理画面からではちょっとアクセス制限の関係が面倒くさいので、ここではエックスサーバーの管理画面からfunctions.phpのファイルを開いて追記することにします。
エックスサーバー上のfunctions.phpの場所は、エックスサーバーアカウントにログインして、「ファイル管理」から、該当ドメイン以下の
public_html > wp > wp-content > themes > lionblog にあります。
functions.phpを編集で開いて、「投稿本文をAMP用にコンテンツを変換する」の部分を探します。
すると、AMPの条件分岐がありまして、
さらにその下を見てやると、AMP用にタグを置換するための記述がいくつかありますので、上記のコードを条件分岐内の適当な場所に追記して更新します。
「fontタグを取り除く」の処理の下に入れてみました。
それにしてもやっぱりこのエディターは使いにくいなあ。。。
以上です。これでエラーの解消ができるはず。
とりあえず適当なページをサーチコンソールでテストして確認してみます。
大丈夫っぽいですね。
じゃあ、まとめて再検証してもらいますよと。
どきどき。。。
。。。数日後。
エラー解消しました。
ふう。めでたしめでたし。
おわりに
これで、まだしばらくはLION BLOGを使っていけそうです。
以上、WordPress6.1にアップデートしたらdecoding属性が自動付与されてAMPエラーが出るようになったので対処したときのメモ(WordPressテーマ「LION BLOG」において)でした。
ちょっと広告です
https://business.xserver.ne.jp/
https://www.xdomain.ne.jp/
★LOLIPOP★
.tokyo
MuuMuu Domain!