WordPress5.5にバージョンアップしたらヘッダーでjQueryが読み込まれなくなった
WordPress5.5にバージョンアップしたところ、jsエラーが発生しました。
表示されるエラーは Uncaught ReferenceError: jQuery is not defined 。
要はjQueryがないよ、です。
慌ててソースを見ますと、ヘッダーではなくフッターでjQueryが読み込まれていました。
つまり、<?php wp_head(); >ではなく<?php wp_footer(); >がjQueryを呼んでいるっぽいです。
原因
WordPress5.5からjQuery Migrateが外れました。これにより jquery.js 呼び出しがヘッダー固定ではなくなったようです。使用しているプラグインが古かったり、更新ストップしてたりするとフッター読み込みになってしまいます。
対策
プラグインのアップデート
私の場合は古いプラグインのアップデートで直りました。
しかし、諸事情でプラグインのアップデートが難しいという場合もあるでしょう。その場合は以下の方法をお試しください。
jquery.js を強制的にヘッダー表示する
1 FTP より wp-content/plugins フォルダに my-plugin フォルダを作成
2 my-plugin.php ファイル を作成し my-plugin フォルダにアップ
my-plugin.php
<?php
/*
Plugin Name: my-plugin
Plugin URI:
Description: My Plugin For WordPress.
Version: 1.0.0
Author:
Author URI:
License: GPLv2 or later
*/
/** jquery.js を強制的に ヘッダー表示する**/
if(!function_exists('nendebcom_jquery_header_script')) {
function nendebcom_jquery_header_script() {
global $pagenow;
global $wp_scripts;
if(is_admin() || is_feed() || 'wp-login.php' == $pagenow) {
return;
}
$jquery = $wp_scripts->registered['jquery-core'];
$jquery_ver = $jquery->ver;
$jquery_src = $jquery->src;
wp_deregister_script('jquery');
wp_register_script('jquery', $jquery_src, array(), $jquery_ver, false);
wp_deregister_script('jquery-core');
wp_register_script('jquery-core', $jquery_src, array(), $jquery_ver, false);
wp_enqueue_script('jquery');
}
add_action('wp_print_scripts', 'nendebcom_jquery_header_script', 999);
}
?>
3 管理画面でプラグインを有効化する
参考元:WordPress5.5 で予想される 不具合について
WordPressのバージョンアップに伴い仕様変更が予測されますので、このコードは一時的なものと思ったほうがよさそうです。
MovableType/WordPressを使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。
アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!