問題を送信する前に、次の手順を完了していることを確認してください。
バグを説明する
JetPack Compare Imageブロックで追加した場合、画像は表示されません。
マークアップがカットされているため、要素を検査するとピクセルsvgのみが表示され、画像ソースは表示されません。
スクリーンショット:
LazyLoadを無効にした場合: https ://jmp.sh/O7wBHsF
LazyLoadを有効にした場合: https ://jmp.sh/ZOZZB7N
再現するには
動作を再現する手順:
予想される行動
画像は次のように表示する必要があります: https :
現在の解決策
LazyLoadオプションからクラス名class="image-compare
を除外します。
LLが適用される前にソースコードのマークアップをブロックする: https :
追加のコンテキスト
Compareブロックは、JetPackの遅延読み込みとWordPressコアの遅延読み込みで機能します。これは、画像が実際には遅延読み込みされていない、つまり除外されているためです。
関連チケット: https :
Slack: https :
おそらく、このLazyLoad除外を自動的に追加することは、私たちの側からの解決策になるでしょうか?
または、互換性はJetPackで行う必要がありますか?
バックロググルーミング(WP Media開発チームのみが使用)
地元のテストサイトで再現
ソースコードに見られるように、プラグイン自体から生成されたコードは正しいです。
<img id="1756" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20801%20801'%3E%3C/svg%3E" alt="" width="801" height="801" class="image-compare__image-before" data-lazy-src="https://tests.local/wp-content/uploads/2019/05/tshirt.jpg"/>
<noscript>
<img id="1756" src="https://tests.local/wp-content/uploads/2019/05/tshirt.jpg" alt="" width="801" height="801" class="image-compare__image-before"/>
</noscript>
<img id="1757" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20801%20800'%3E%3C/svg%3E" alt="" width="801" height="800" class="image-compare__image-after" data-lazy-src="https://tests.local/wp-content/uploads/2019/05/vneck-tee.jpg"/>
<noscript>
<img id="1757" src="https://tests.local/wp-content/uploads/2019/05/vneck-tee.jpg" alt="" width="801" height="800" class="image-compare__image-after"/>
</noscript>
この問題は、比較スクリプトが開始された後に発生し、レイジーロードされたマークアップでは正しく機能しません。
RocketLazyload\Images::getExcludedAttributes()
の除外にimage-compare__
を追加すると、それらの画像がlazyloadから除外され、問題が解決されます。
このフィクスチャデータは、検証とリグレッション防止のための自動テストに追加できます。
努力[XS]
関連: https :
除外リストにimage-compare__
を追加すると、問題が解決しました。
@ engahmeds3ed @piotrbakこれは来週のリリースのために3.8.3の準備ができているかもしれませんか? マイルストーンを更新しませんか?
@arunbasillal私の観点からは、数分でQAを開始します
最も参考になるコメント
@arunbasillal私の観点からは、数分でQAを開始します