WordPressプラグイン「Query Monitor」の使い方をまとめました。
「Query Monitor」は、WordPressの定番デバッグプラグインとしても有名で、例えばページごとのメモリの使用量や、読み込みスピード、クエリに関する内容など、WordPressに関する技術的な情報を確認できるプラグインです。
テンプレート開発に役立つ内容も確認できますが、使い方は難しくありません。
基本的に初期設定は不要で、有効化するだけで各情報を確認可能です。
この記事の目次
WordPressプラグイン:Query Monitor
WordPress(Ver.5.2以降)にはサイトヘルス機能があり、この画面からWordPressやサーバーに関する技術的な内容をある程度確認することができますが、今回紹介するプラグイン「Query Monitor」を使えばさらに多くの情報が確認できます。
早速ですが「Query Monitor」を使えば主に以下のような情報の確認が可能です。
- ページの生成時間・メモリ使用量・SQLクエリの実行時間と総数
- ページで使用されたWordPressの条件分岐
- コンポーネントごとのデータベースクエリ
- ページリクエスト(HTTPヘッダーやWPのフィルターフックなど)
- 使用されているテンプレートの詳細
- PHP・DB・WordPress・サーバーのバージョンなどの詳細
これだけでも相当ですが「Query Monitor」には、上記の他にも確認できる項目や、設定を行えば使えるようになる機能がまだまだあります。
ボリュームが凄いことになるので全ての機能を紹介、解説することはできませんが、当記事では「Query Monitor」の基本的な使い方をまとめます。是非ご参考下さい。
Query Monitorのインストール
執筆時、Query MonitorはWordPressの管理画面からインストールできました。
【WordPress管理画面>プラグイン>新規追加】から「Query Monitor」と検索すれば出てくるはずですので、インストール&有効化しましょう。
出てこない場合は以下の公式ページからDLして手動アップロードすればOKです。
有効化するだけでメモリ使用量等が確認可能
Query Monitorは有効化するだけでWordPressのメモリ使用量や、ページの読み込み時間、クエリの実行時間とクエリの総数を表示してくれます。
WordPressにログインした状態であれば、ツールバーに各数値が表示されます。
ツールバーに表示されている数値ですが、左からそれぞれ
- ページの生成にかかった時間(秒)
- ピーク時のメモリ使用量
- SQLクエリの実行時間(秒)
- SQLクエリの総数
となっており、一目で開いたページの技術的な情報を確認することが可能です。
特にページごとのWordPressのメモリ消費量は、memory_limitの設定値を算出するときに重宝する情報かと思います。
Query Monitorの使い方
ツールバーに表示されるメモリ消費量を確認できるだけで十分役に立つプラグインですが、Query Monitorにはまだまだ機能があります。
ツールバーの数値部分にマウスオンすれば、Query Monitorのメニューが表示され、ここから各画面に進むことでさらに詳しい情報を確認することができます。
正直、WebサイトやWordPressに関する知識がある程度ないと各情報を読み取るのは難しいと思いますが、ここでは各メニューが何を表示するのかをまとめておきます。
画像を付けるとかえって見にくくなるので各画面の画像は省きました。
気になる方は実際にプラグインを有効化して確認しながら読んでみて下さい!
Query Monitorのメニュー画面はそれぞれ日本語に対応しているので見やすいです。
概要(Overview)
Query Monitorの概要では、ツールバーに表示されているメモリ使用量などの数値をさらに詳しくした内容の他、サーバーに設定しているmemory_limitの値やHTTP APIコール、オブジェクトキャッシュに関する内容が確認できます。
データベースクエリ(Queries)
データーベースクエリは、文字通りSQLクエリに関する情報を確認する画面です。
重複クエリ(Duplicate Queries)
WordPressのコアや、使用しているプラグインによって複数回呼び出されたクエリを確認することができる画面です。
呼び出し元ごとのクエリ(Queries by Caller)
WordPressの関数(呼び出し元)ごとのクエリが一覧で確認できます。
各クエリは実行時間が長いものから順にソートされて表示されます。
コンポートごとのクエリ(Queries by Component)
ページ読み込み時にWordPressのテーマや、各プラグインによって実行されたクエリを一覧で確認できます。
実行時間が長いものからソートされているので、特にクエリ数が多いプラグインや、処理が遅いプラグインという、いわゆる重たいプラグインを見つけたい時に特に役に立つツール画面です。
Timings
デフォルトでは有効になっていない機能を確認する画面です。
何の機能なのかというと、コードの実行時間とメモリ使用量を測れる機能です。
// Start the 'foo' timer: do_action( 'qm/start', 'foo' ); // Run some code my_potentially_slow_function(); // Stop the 'foo' timer: do_action( 'qm/stop', 'foo' );
こんなコードで実行時間、メモリ消費量をプロファイリングできるみたい。
(詳細はプラグインの同画面内のリンク参照)
ログ
こちらもデフォルトで有効になっていない機能です。
console.logを使って各ブラウザのデベロッパーツールのコンソールにログを表示することができる。
do_action( 'qm/debug', 'This happened!' );
コードはこんな感じに書けばOKらしいです。
(詳細はプラグインの同画面内のリンク参照)
リクエスト(Request)
リクエストのメニュー画面の下層には、
- リクエストヘッダー(Request Jeaders)
- レスポンスヘッダー(Response Headers)
- 使用されているフック(Hooks in Use)
の3種類のメニュー画面があり、それぞれの内容を確認できます。
HTTP応答ヘッダーについてはChromeなどのデベロッパーツールでも確認できますが、WordPressの使用フックについては、さすがQuery Monitor!というところです。
テンプレート
現在のWordPressテーマで使用しているテンプレートの詳細が確認できます。
第三者のサイトを編集する際に、テンプレートの場所や名前が分からない時に役に立ちます。
Scripts
サイトのヘッダー、フッターで読み込まれているscript(.jsファイル)が一覧で確認できます。
<script src="xxx"></script>
というHTMLで読み込んだscriptの一覧とも言えます。
ブラウザで確認するよりも楽かもです。
Styles
サイトのヘッダー、フッターで読み込まれているstylesheet(.cssファイル)が一覧で確認できます。
<link href="xxx" rel="stylesheet" />
というHTMLで読み込んだスタイルシートの一覧とも言えます。
アクションとフック(Hooks&Actions)
WordPressのコアやプラグインで使用されたフック、およびアクションの一覧です。
総数が多いので目的のフックやアクションを把握していないとぼーっと眺めるだけになります。
言語
wp-content/languagesの中にある言語ファイルの詳細。
プラグインがどの言語ファイルをどんなコードで読み込んでいるかも分かります。
HTTP API Calls
APIコールについての画面です。
WordPressの場合はcron用のPOSTメソッドが出ました。
Transient Updates
これも恐らくcron用。よく分かりません...。
Capability Checks
デフォルトで無効になっている機能です。
WordPressのwp-config.phpに以下を追記すれば使えるようになります。
define( 'QM_ENABLE_CAPS_PANEL', true );
これで機能チェックというパネルがオンになります。
環境
環境の画面では、PHP、データベース、WordPress、サーバーに関する情報を確認できます。WordPressの「サイトヘルス」からも確認できますが、もっと専門的な内容が見れます。
データベースに関してはユーザー名などの情報も確認可能。
条件文
開いたページで使われている条件分岐(例えばis_home()関数など)を確認することができます。どちらかというとページのデバッグに便利かな?
Query Monitorの設定画面
Query Monitorには設定画面もありますが、これもかなりマニアックな内容です。
設定画面はコントロールパネルの画面右上に設定マーク()があるので、こちらを開けば進めます。
プラグインの設定ができる他、WordPressのwp-config.phpに以下のようなコードを追記することで、プラグインの機能を制御することもできます。
//警告トリガー発動条件値を変更する:デフォルト値0.05 //(DBクエリの実行時間が設定値よりもかかる場合「遅い」と判定される) define('QM_DB_EXPENSIVE', 0.15); //クエリーモニターを完全に無効にする //(User Switchingプラグイン用のリポジトリ) define('QM_DISABLED', true); //PHPエラー処理を無効にする define('QM_DISABLE_ERROR_HANDLER', true); //機能チェックパネル(Capability Checks)を有効にする define('QM_ENABLE_CAPS_PANEL', true); //フックとアクション(Hooks&Actions)でWPコアを非表示にする define('QM_HIDE_CORE_ACTIONS', true); //フックとアクション(Hooks&Actions)でアタッチされている全フックを表示 define('QM_SHOW_ALL_HOOKS', true); //Query Monitorを各パネルから非表示にする define('QM_HIDE_SELF', true); //jQueryをQuery Monitorの依存関係から外す define('QM_NO_JQUERY', true); //wp-content/db.phpへのシンボリックリンクを配置できるようにする define('QM_DB_SYMLINK', true);
コードはwp-config.phpの「編集が必要なのはここまでです」より上に書きます。
上記すべては実行確認していないので参考までに。
(詳細はプラグインの同画面内のリンク参照)
まとめ
以上、WordPressプラグイン「Query Monitor」の使い方についてでした。
見ての通り、WordPressのテンプレート開発者でもない限りほとんどの情報は確認しても使いこなせないレベルのものばかりですw
何というか素晴らしいプラグインなのですが、僕ら一般ユーザーは結局“WordPressのメモリ使用量を測定するプラグイン”というレベルでしか使えないかも...。
この記事が誰かの何かの役に立てば幸いです。ではではこのへんで・w・