Web

WordPress 4.5系更新に伴うjQueryエラー「Uncaught Error: Syntax error, unrecognized expression:・・・」について

screen-shot

◯今回のエラーメッセージ
jquery.js?ver=1.12.3:2 Uncaught Error: Syntax error, unrecognized expression: a[href*=#header],a[href*=#respond]

セレクタの指定の仕方によってはエラーが出る

WordPressコアに含まれるjQueryがver.1.12.3に上がると
a[href*=#header] とか a[href*=#respond] のようなセレクタ指定をすると読み込まなくなっていました。

consoleで表示するとjquery.js内でシンタックスエラーがあるようなメッセージに見えるので、
「jqueryコアがそんな間違いを犯すのか!?」と勘違いしてしまいました。
調べてみるとまだ対応が終わっていないプラグインのユーザーを中心に、このエラーで世界中のWordPressユーザーが困っているようでしたので、忘れないように書き留めておきます。

解決方法は「ID名・CLASS名をクォーテーションで囲む」

表示されているエラー内に原因のセレクタが表示されているので、このセレクタを全てのjsファイルから探して以下のように修正します。

誤 → jQuery("a[href*=#header],a[href*=#respond]").click(function() { // 略 正1 → jQuery("a[href*='#header'],a[href*='#respond']").click(function() { // 略 正2 → jQuery('a[href*="#header"],a[href*="#respond"]').click(function() { // 略

deregisterして好きなバージョンのjQueryを読み込む方法

全てのjsファイルを見つけ出して修正することが難しいのであれば、これまで問題のなかったバージョンのjQueryソースファイルを読み込む方法もあります。もちろん変更前後のバージョンでどんな差分があるのか把握した上でお使いください!

急ぎで復旧が必要な場合にはfunctions.phpに以下のコードを書き込んで解決できます。

functions.php

wp_deregister_script( 'jquery' );
wp_enqueue_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js'); //任意のバージョンを指定

About @MIsechi

伊瀬知真実(いせちまこと)鹿児島県出身。エンジニアが好き。
View all posts by @MIsechi →

1 thought on “WordPress 4.5系更新に伴うjQueryエラー「Uncaught Error: Syntax error, unrecognized expression:・・・」について

コメントを残す