広告 Affinger・改善

WordPressテーマAffinger6のアップデート(var20240721)に伴うjQueryエラー(動作不良)対策

スポンサーリンク

 

Affinger6のアップデート(var20240721)に伴い今迄のjQuery1.11.3から最新のjQuery3.Xが適用される様になり、脆弱性リスクの減少が期待できます。 

早速Affinger6のアップデートを行こなったところ、jQueryで記述しているscriptがことごとくエラーになって動作不良(正常に表示しない)になってしまいました。^^;

Affinger6のアップデート(var20240721)に伴う、jQueryエラーの発生原因と回避策を紹介します。

注意ポイント

Affinger6のアップデート(var20240721)に伴う、jQueryエラー(事象)は、当サイトのWordPress環境で生じたものです。 利用されているWordPress環境で、事象が異なる場合があり得ますことを予めご承知おきください。

 

スポンサーリンク

 

 

なぜjQueryエラーが発生するか?(原因)

今までのAffinger6バージョン(var20240625)までは、WordPressの独自仕様によるjQueryを「読み込ませない」設定 にして外部からjQueryを読み込む仕様でした。

ところが、今回のアプデで、WordPressに付属するjQueryを読み込む仕様に変更された様で、WordPressにおいてjQueryコードの書式が厳格化されます。 このため、簡易表記の$マークはリジェクトされ、今まで動作していたjQuery scriptがエラーになります。

 

対応策(正しいjQueryの表記方法)

 NG表記(例)
$(function() {
$('div.nolink a').css('pointer-events', 'none').attr('tabindex', -1);
});

$マークをjQueryに変更するだけ

 OK表記(例)
jQuery(function($) { // ($)にすることで、function内は今まで通り$マークOK
$('div.nolink a').css('pointer-events', 'none').attr('tabindex', -1);
});
単独の場合は
jQuery('div.nolink a').css('pointer-events', 'none').attr('tabindex', -1);

 

ブログ内の全てのjQueryコードを修正したところ、ブラウザで確認する限りjQueryの動作不良は解消されましたが?

 

jQueryエラーの有無を念の為ChromeのConsoleで確認すると

下に示す3つのエラーが発生しているのが確認できました。

この原因は、Affinger6テーマファイルの st-richjs.php 内に$マーク表記のjQueryコードが存在している為でした。

st-richjs.php の640行、652行、664行に$マーク表記のjQueryコードがあり、下のコードの様に前述の正しいjQueryの表記に手修正して保存したところ、上記エラーは解消しました。

注意ポイント

今後、Affinger6のバージョンアップがあった時に、st-richjs.php のjQuery表記が訂正されていれば問題ないのですが、訂正されていない場合は、バージョンアップ毎に、今回と同様の手修正が必要です。

 

Affinger6 var20240721のjQueryバージョンの確認

jQueryバージョンの確認は、例えばこのページをChromeで表示させ、デベロッパツールのConsoleで、 jQuery.fn.jquery と打ち込みます。

上画の様に、Consoleに '3.7.1' と表示されたので、Affinger6 var20240721は、jQuery3.7.1 になっていることが確認できました。

 

以上、Affinger6のアップデート(var20240721)に伴うjQueryエラーの回避策の紹介でした。

 

スポンサーリンク

 

スポンサーリンク