Uncaught TypeError: Property '$' of object [object Object] is not a functionの対処法

人から引き継いだWordPressのサイトをいじっていたら表題のエラーが出ました。
どうやら、$変数が空(jQueryオブジェクトが割り当てられてない)なのが原因のようです。

実際、wp-includes/js/jquery/jquery.js ファイルをのぞいてみると、
/*! jQuery v1.8.3 jquery.com | jquery.org/license */
(function(e,t){function _(e){ .....
jQuery.noConflict();
となっていました。

この
jQuery.noConflict();
が$を殺してしまっているようです。

jQuery.noConflict()は何かというと、その昔prototype.jsが全盛だったころに、グローバル変数$がかぶってしまうのでjQuery側で$を使わないようにするTipsですね。
でもいまやjQueryがデファクトスタンダードなので、$はjQuery君が占有しても問題ないでしょう。

というわけでこの1行を削除したら解決しました!
カテゴリ: