WordPress のプラグインの読み込み順:決まり方と、先に読み込ませたいときの方法(並び順で速くはならない)

広告WordPress・PHP を学べる本

Amazonのアソシエイトとして、WordPress functions.phpは適格販売により収入を得ています。

概要説明

WordPress のプラグインが読み込まれる順番の決まり方(有効にしたときに名前の順に並べ直す・mu-plugins が先)と、自分を先頭に動かすプラグインの例、ほかのプラグインより先に動かしたいときの方法。並び順を変えても速さや SEO は変わらないことも、WordPress のコードで確かめた結果つきで。

WordPress のプラグインは、決まった順番で読み込まれます。「並び順を変えるとサイトが速くなる」と言われることもありますが、並び順で速さや SEO は変わりません。

この記事では、読み込みの順番がどう決まるかと、あるプラグインを先に読み込ませたいときの方法を、WordPress のコードで確かめた結果とあわせてまとめます。

読み込みの順番の決まり方

もの 順番
mu-plugins(wp-content/mu-plugins) ふつうのプラグインより先に、ファイル名の順で読み込む
ふつうのプラグイン データベースの active_plugins という一覧の順で読み込む
active_plugins の順 プラグインを有効にしたときに、フォルダ名の順に並べ直される
管理画面の「プラグイン」の一覧 見た目の並びだけ。読み込みの順番とは関係ない

つまり、ふつうに使っているかぎり、プラグインはおおむねフォルダ名のアルファベット順に読み込まれます。

WordPress のコードで確かめた

決まり WordPress のファイル
有効にしたときに一覧を並べ直す(sort) wp-admin/includes/plugin.php の activate_plugin()
mu-plugins をファイル名の順に並べる wp-includes/load.php の wp_get_mu_plugins()
mu-plugins を読み込んでから、ふつうのプラグインを読み込む wp-settings.php

例外:自分を先頭に動かすプラグインもある

このサイトの作業環境(WordPress 7.1・有効なプラグイン 33 個)で active_plugins を見たところ、名前の順なら先頭は ai-engine のはずなのに、先頭が tablepress になっていました。

調べると、TablePress の中に入っている Freemius という部品(有料版の販売などに使うもの)の fs_newest_sdk_plugin_first() が、自分のプラグインを active_plugins の先頭に動かしていました。同じ部品を使うプラグインがいくつかあるとき、いちばん新しい版の部品を先に読み込むための仕組みです。

このように、プラグインが自分で順番を書きかえることもあるので、順番が名前の順になっていなくても、すぐに不具合というわけではありません。

あるプラグインを先に読み込ませたいとき

「このプラグインの関数を、別のプラグインの中で使いたい」など、先に読み込ませたいときは、順番を書きかえるより、次の方法が確実です。

方法 向いているとき
自分で書く処理は mu-plugin にする ほかのどのプラグインより先に動かしたいとき(mu-plugins はいつも先に読み込まれる)
plugins_loaded のフックで動かす ほかのプラグインの関数を使いたいとき(すべてのプラグインを読み込んだあとに動く)
function_exists・class_exists で確かめてから使う 相手のプラグインが止まっているときにも、エラーにしたくないとき
// すべてのプラグインを読み込んだあとに動かす(相手のプラグインの関数を安全に使う)
add_action( 'plugins_loaded', function () {
	// other_plugin_function は、使いたい相手のプラグインの関数の名前に変える
	if ( ! function_exists( 'other_plugin_function' ) ) {
		return; // 相手のプラグインが止まっているときは何もしない
	}
	// ここで相手のプラグインの関数を使う
} );

active_plugins の順番を直接書きかえる方法もありますが、プラグインを有効にし直したときや、今回の Freemius のようにプラグインが書きかえたときに、元に戻ってしまいます。

サイトを速くしたいとき

並び順を変えても、読み込むプラグインの数と中身は同じなので、速さは変わりません。速くしたいときは、次のことを見直します。

  • 使っていないプラグインを止めて、消す
  • 同じことをするプラグインを 2 つ入れていないか確かめる
  • 決まったページでしか使わないプラグインを、ほかのページでは読み込まないようにする(Plugin Load Filter などのプラグインでできる)
  • ページキャッシュを使う

関連機能

  1. WordPressでのメール送信とお問い合わせフォームの設定ガイド

  2. WordPress の SEO のプラグインの選び方:Yoast SEO・Rank Math・All in One SEO・SEOPress を比べる(入れるのは 1 つだけ)

  3. WordPressの使い方をマスターしよう!Classic EditorとClassic Widgets、WP Downgradeの活用法

サイドバー

よく使うカスタマイズ

最近の記事

Profile

PAGE TOP