ワードプレスのリンクカードをクリックできない(EWWW Image Optimizerは残したい)

【最初に結論】

「設定」→「EWWW Image Optimizer」→「遅延読み込み」“画像が表示領域に入った (または入ろうとしている) 時にだけ読み込まれるため、読み込み速度を改善します。”のチェックが入っていたら解除する。
画像やらなんやらの遅延読み込み(Lazy Load)には別のプラグインを使用する(とりあえずSmushを入れてみた)

既存の記事を紹介するのに便利なリンクカード機能

ワードプレスをご利用の皆様リンクカード機能はお使いになられていますでしょうか。
僕はよく使います。
過去の事例に関する記事を書く時なんかにURLを入れるだけで勝手にそれっぽいサムネイル付きのリンクにしてくれる超便利機能。
デフォルトであるんだから有難いですよね。


便利だぜ。

ところがこのリンクカード、画像を自動でwebp変換したり圧縮したりしてくれる便利なEWWW Image Optimizerプラグインを使っているとクリックできなくなってしまいます。リンクなのに。
マウスオーバーでリンク先のURLも出ているのに。ソース上でもaタグもリンク先も間違っていないのに。どうして。どうしてですかね…

wp-embed.min.jsと何かの競合


飛ばないリンクをクリックし続けていると、コンソールタブでUncaught TypeErrorのカウントが増え続けることに気が付きました。
このあたりに何かしらの原因がありそうです。

wp-embed.min.jsは、WordPressの埋め込み(embed)機能に関連するjsで、外部サイトのリンクや動画などのコンテンツを埋め込む際に使用されます。
EWWW Image Optimizerの特定の設定(特に画像の遅延読み込みやキャッシュ関連の機能)が、このスクリプトに悪影響を与えている可能性が考えられます。
具体的には、クリックした際に不正なURLが処理されようとしているため、Failed to construct ‘URL’: Invalid URLエラーが発生しています。

EWWW Image OptimizerのLazy Load機能を無効化

EWWW Image Optimizerプラグインを無効化すればとりあえずリンクは出来るのですがせっかく便利なプラグインを消してしまうのは辛いものです。
いまさら手動で変換したくねぇ…ということでクリティカルなところだけ対応します。
Lazy Load機能は他のプラグインでも対応できると思われるのでこちらのチェックを外したら…リンクできたー!!

とりあえずLazy Loadに関してはSmushを入れてみました。
圧縮面でもダブってしまうので他のを試してみてもいいかもしれない。

作成者: tschappie

レトロゲームお絵描き板の保管庫運営したり、ケーキ焼いたり、ろくなことをしていないtschappie(ちゃっぴー)のブログです。マイクロマガジン社のれとろげさん応援中。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください