WordPressが今もjQueryを抱える技術的理由

WordPressが今でもjQueryを抱えている理由

WordPressにおいて、jQueryは「古いから消せない」のではありません。互換性を維持するための“基盤”として残っているのが実態です。
そしてこの事実を理解しないまま「jQueryは時代遅れだから削除しよう」とすると、高確率でサイトが壊れます。

現在のブラウザはモダンJavaScript(ネイティブJS)が充実しているため、jQueryが不要に見えるのは正しい側面もあります。しかしWordPressは単なるWebサイトではありません。テーマ・プラグイン・ブロックエディタ・管理画面という複数のソフトウェアが同時に動作する「プラットフォーム」です。

つまり、jQueryはフロントエンドの便利ライブラリではなく、後方互換性のための共通APIとして残っています。

なぜWordPressはjQueryを削除できないのか

理由は非常に単純です。
WordPressのエコシステムの規模が大きすぎるからです。

WordPressでは、世界中の開発者がテーマやプラグインを作成しています。過去15年以上の資産が積み上がっており、それらの多くがjQueryを前提に設計されています。

仮にWordPress本体からjQueryを完全削除した場合、次のような問題が起きます。

  • スライダーが動かない
  • メニュー開閉が反応しない
  • フォーム検証が止まる
  • 管理画面の操作が効かない

重要なのは、これが「特定テーマの不具合」ではない点です。
インターネット上の膨大なWordPressサイトが同時に壊れる可能性があります。

WordPressはCMSです。CMSにとって最も重要なのは「最新性」ではなく「安定性」です。
そのため、多少古い技術であっても、互換性を壊す変更は極めて慎重になります。

WordPressの設計思想:後方互換性は絶対

WordPress開発の基本原則に「Backwards Compatibility(後方互換性)」があります。
これは「昔作られたテーマが、将来のWordPressでも動き続けるべき」という思想です。

たとえば10年前のテーマでも動くことは珍しくありません。
この思想がある限り、jQueryの完全削除は事実上不可能です。

管理画面がjQueryに依存している現実

多くの人が見落としていますが、jQueryに依存しているのはフロント側だけではありません。
むしろ重要なのは管理画面です。

WordPressの管理画面では以下の処理が行われています。

  • メディアアップローダ
  • ドラッグ&ドロップ並び替え
  • 設定パネルのトグル表示
  • カスタマイザーの動的UI

これらは歴史的にjQuery UIベースで実装されています。
特にドラッグ操作(sortable)はネイティブJSで完全置換されていない部分が残っています。

つまり、jQueryはテーマの問題ではなく、WordPressのUIフレームワークの一部です。

なぜモダンJSに移行しないのか

WordPressがGutenberg(ブロックエディタ)でReactを採用したことから、「もうjQueryは不要では?」と考える人は多いです。
しかしここに大きな誤解があります。

Reactが使われているのは「新しい編集画面」です。
一方で、以下は依然として従来の管理画面です。

  • プラグイン設定ページ
  • ウィジェット画面(旧)
  • 多くの管理メニュー

つまりWordPressは現在、次の2つが共存しています。

領域 使用技術
編集画面 React
従来管理画面 jQuery

この状態をいきなり統一すると、プラグインの大半が動かなくなります。

jQueryが残る本当の理由:プラグイン互換性

WordPressサイトの価値の多くはプラグインにあります。
EC、会員機能、予約、SEOなど、機能拡張の大部分がプラグインです。

そして、プラグイン開発者が最も困るのが「JavaScript仕様の破壊的変更」です。

ネイティブJSはブラウザ差異がほぼ解消されましたが、過去の環境を考慮するとjQueryの利点がありました。

  • IE対応
  • DOM操作の抽象化
  • イベント処理の統一

古いプラグインは、このjQueryの挙動を前提に作られています。
したがってWordPressは、jQueryを削除する代わりに次の方式を取っています。

「新しい仕組みを追加しつつ、古い仕組みを残す」

これがWordPressが巨大になった理由でもあり、技術的負債のように見える部分でもあります。

実際にjQueryを外すとどうなるか

functions.phpでjQueryを読み込まないようにすると、以下のようなコードは即停止します。

jQuery(document).ready(function($){
  $('.menu-toggle').click(function(){
    $('.nav').toggleClass('open');
  });
});

このコードは現在でも数えきれないテーマに存在します。
そして重要なのは、エラーが画面に出ないことです。

ブラウザコンソールには

「jQuery is not defined」

とだけ表示され、ユーザーには「ボタンが押せないサイト」に見えます。

失敗しがちなポイント
  • CDN版jQueryに置き換える
  • 読み込み順を変える
  • deferを付ける

これらはパフォーマンス改善としてよく紹介されますが、WordPressでは危険です。
理由は、プラグインが「WordPress標準の読み込みタイミング」を前提にしているためです。

パフォーマンスとの関係

jQueryは確かに軽量ではありません。
しかし、実際の表示速度のボトルネックになるケースは多くありません。

表示が遅い原因の多くは以下です。

  • 画像サイズ
  • Webフォント
  • プラグイン過多
  • 外部広告スクリプト

jQueryを削除しても、体感速度が変わらないことは珍しくありません。

むしろ問題になるのは「壊れるリスク」です。

どのようなサイトでjQueryを外すべきか

jQueryを削除しても安全なケースはあります。

  • 自作テーマ
  • プラグイン未使用
  • JavaScriptを自分で管理している

逆に危険なケースは明確です。

  • 商用テーマ使用
  • 多数のプラグイン
  • 更新停止プラグイン

特にテーマforest系テーマでは、高確率で依存しています。

まとめ:jQueryは古い技術ではなく“互換性レイヤー”

WordPressにおけるjQueryは、フロントエンドライブラリではありません。
それはエコシステムを壊さないための互換性レイヤーです。

最新技術だけを基準に見ると、確かに不要に見えます。
しかしWordPressの役割は「最新のWebアプリ」ではなく、「誰でも使える安定したCMS」です。

新しい技術は追加され続けています。
ただし古い技術は、静かに残り続けます。

jQueryが消えないのは、WordPressが進化していないからではありません。
WordPressが“壊さない”ことを最優先しているからです。

そして実務では、「削除するか」ではなく、どこまで依存しているかを把握することが最も重要になります。