WordPress 3.4.1にアップデートしたらjQueryが機能しなくなった

本ページは広告が含まれています

how to make WordPress needle cushion
Photo : odysseygate

つい先日、WordPressを3.4.1にアップデートをしたところ、以前も一度はまった「トップへ戻る」ボタンが、またフェードインしなくなっているではありませんか!(出っぱなしの状態) 

page top

特に、コード等変更していませんでしたので???
フェードインをしないということは、jQueryが読み込まれていないか、jQueryが実行されていない可能性が高いと思いましたので、原因を検証してみました。 

スポンサーリンク
もくじ

検証

1.header.phpとfooter.phpの確認

まずは、念の為にheader.phpとfooter.phpのコードの確認を…
header.phpにWordPressに入っているjQueryを読み込ませずに、外部のjQueryを読み込ませるコードを書いていましたので、下記のコードを確認。

<?php
    wp_deregister_script('jquery');
    wp_enqueue_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', array(), '1.7.2');
?>
<?php wp_head(); ?>

 特に間違えは無さそうなので、続いてfooter.phpの下記コードを確認。

<!-- ページトップへ戻る -->
  <div id="page-top"><a href="#">PAGE TOP ↑</a></div>
  <script type="text/javascript">
  $(function() {
	var pageTop = $('#page-top');
	pageTop.hide();
	//スクロールが400に達したら表示
	$(window).scroll(function () {
		if($(this).scrollTop() > 400) {
			pageTop.fadeIn();
		} else {
			pageTop.fadeOut();
		}
	});
	//スクロールしてトップ
        pageTop.click(function () {
		$('body,html').animate({
			scrollTop: 0
		}, 800);
		return false;
        });
  });
  </script>
<!-- ページトップへ戻る 終わり -->

特に問題は無さそうです。
今まではこのコードで動いていたのでなんでだろう?

この状態で、Chromeでソースを表示させてみると

source-jquery-1-7-2 

jQueryは読み込んでいます。

2.ローカル環境で確認してみる

可能性を潰していくためにも、MAMPのローカル環境で確認してみることに。
ちなみに、ローカル環境のWordPressも同じように3.4.1にアップデート!
サイトを表示してみると、あっさり今まで通りにフェードインするので、コードは間違っていなそうです。

…となると、サーバー???
でも、アップデートした後だからWordPress???
とりあえず、更に可能性を潰していくためにも、ローカル環境で正常に動いたテーマを念のため上書きをせずに名前を変えてサーバーにアップロードし、アップしたテーマに変えて確認…

フェードインしない…???
何がなんだかわからなくなってきたので、初心にかえることにしてみました。

3.$をjQueryに変更

 元々は、以前はまった際にWordPressに入っているjQueryを読み込ませずに、外部のjQueryを読み込ませる設定にしましたので、WordPressに入っているjQueryを読み込ませて使用する方法($をjQueryに変更)に戻してみます。

<!-- ページトップへ戻る -->
  <div id="page-top"><a href="#">PAGE TOP ↑</a></div>
  <script type="text/javascript">
  jQuery(function() {
	var pageTop = jQuery('#page-top');
	pageTop.hide();
	//スクロールが400に達したら表示
	jQuery(window).scroll(function () {
		if(jQuery(this).scrollTop() > 400) {
			pageTop.fadeIn();
		} else {
			pageTop.fadeOut();
		}
	});
	//スクロールしてトップ
        pageTop.click(function () {
		jQuery('body,html').animate({
			scrollTop: 0
		}, 800);
		return false;
        });
  });
  </script>
<!-- ページトップへ戻る 終わり -->

と変更して、サイトを表示してみると…
フェードインするように戻りました。 

 まとめ

検証から、確実な原因は突き止めれていませんが、とりあえず無事に元へ戻りました。
今回学んだことは、

  • 必要でないアップデートはしない!
  • アップデートの際は、慎重に下調べをしてからする!
  • 迷ったら初心にかえるべし!

の3点です。

しかし、何か仕様が変わったのでしょうか? 
とりあえず、はまったときの応急処置程度に試して下さい。

よかったらシェアしてね!
  • URLをコピーしました!
もくじ