WordPress 5.3でエラー発生時の対処方法 Uncaught TypeError: $ is not a function

WordPress 5.3にバージョンアップして、動作しないプラグインやテーマがあるようです。

原因の1つにjQueryの書き方が変わりました。

今までは『$』と書いていればjQueryとして認識してましたが、これが通用しなくなりました。

プラグインやテーマがアップデートして対応すべきですが、既に開発が止まっている物もあると思います。

一時凌ぎしのぎ的な対応ですが、下記のコードをお使いのテーマのfunctions.phpに追記してみてください。

ログイン後の管理画面内、記事編集等で発生する場合

add_action( 'admin_enqueue_scripts', function(){
	wp_add_inline_script( 'jquery', 'var $ = jQuery;' );
},0);

公開中の記事等で発生する場合

add_action( 'wp_enqueue_scripts', function(){
	wp_add_inline_script( 'jquery', 'var $ = jQuery;' );
},0);

PHP5.3.0以降をお使いなら上記コードでOKです。

お試しあれ。

なお、私の製作しているテーマやプラグインは対応済みです。
上記対応は不要です。

#48568 ($ not defined on edit screen anymore)– WordPress TracNewsShowcaseHostingExtendThemesPluginsPatternsBlocksOpenverse ↗︎LearnLearn WordPressDocumentationForumsDevelopersWordPress.tv ↗︎CommunityMake WordPressPhoto DirectoryFive for the FutureEventsJob Board ↗︎AboutAbout WordPressEnterpriseGutenberg ↗︎Swag Store ↗︎Get WordPressSearch TracGet WordPressMake WordPress CoreBlogHandbookTicketsComponentsBrowse SourceTrac TimelineCreate a New TicketSearch:LoginNotificationsContext Navigation← Previous TicketNext Ticket →Opened 4 years ago
#48568 ($ not defined on edit screen anymore)– WordPress Trac core.trac.wordpress.org
#48568 ($ not defined on edit screen anymore)– WordPress Trac

上記リンク先でこの変更に対する、大まかな流れがわかります。

以上です。

やーまん
  • WordPressでテーマやプラグインの開発をしています。
    開発中に使用したHow toを中心に書き残していきます。

WordPress