◯今回のエラーメッセージ
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'); //任意のバージョンを指定
1 thought on “WordPress 4.5系更新に伴うjQueryエラー「Uncaught Error: Syntax error, unrecognized expression:・・・」について”