jQuery3.x系に対応させたいのですが

No Image

WordPressで標準のjQueryのバージョンは1.x系で、この記事を書いている現在は1.12.4です。
でもjQueryの最新バージョンはというと3系がありまして、ちょっと試したい気持ちになりました。
WordPress自体は互換性を重視して1.x系を使っているのかもしれませんが、これからは3.x系が主流になりそうなで早めに試験的に導入してみようと思います。

jQuery3.x系に対応させたいのですが

スポンサーリンク

一番私に影響がある変更点というとshowメソッドとhideメソッドが大きく変わってしまったことでしょうか。
当サイトでもばっちり使っていますので、もしかしたらCSSから改めないといけなくなるかもしれません。

まったく動かなくなるのが嫌なのでjQuery Migrateプラグインも入れておきます。

WordPressでjQueryを既存のバージョンから別のバージョンに置き換えるためにfunctions.phpに次のコードを書き加えます。

function load_cdn() {
	if ( !is_admin() ) {
		wp_deregister_script('jquery');
		wp_enqueue_script('jquery', 'http://code.jquery.com/jquery-3.1.0.min.js', array(), NULL, false);
		wp_deregister_script('jquery-migrate');
		wp_enqueue_script('jquery-migrate', 'http://code.jquery.com/jquery-migrate-3.0.0.min.js', array(), NULL, false);
	}
}
add_action('init', 'load_cdn');

is_admin関数で管理画面かを判定することで、管理画面では問題が起きないように置き換えないようにしています。
とりあえず、これで動くようになる・・・と思ってたんですけど、なりませんでしたorz

なぜかjQueryのスクリプトだけがbodyの後ろの方へ行ってしまうのです。
なのでMigrateプラグインのが先に読み込まれてしまい、効果がないという。

これでは試そうにも試せないのでまずはこの問題を解決することが先になりました。
無理やりヘッダーに移すこともできるといえばできるのですが、それはそれで変な記述になってしまうので断念。
どうにかしてfunctions.phpだけの記述で完結させたいですからね。

プラグインとテーマのどちらが影響しているのかわかりませんが、早々に問題解決したいものです。

jQuery3.x系に対応させたいのですが

スポンサーリンク

Leave a Comment