サイトに何らかの問題やエラーが発生したら、その原因や解決策を探るためにトラブルシューティングを行う必要があります。

WordPressにはデバッグモードが組み込まれており、PHPエラー、通知、警告を表示することで、何が起こっているのか調査を進めることができます。また、特定の種類の問題を調べるのに便利なデバッグオプションもあります。

問題の原因を特定したら、その内容をプラグインやテーマの開発者、またはウェブサイトの開発者に報告しましょう。すぐに解決されない場合は、解決まで特定のプラグインやテーマの使用を一時停止することも一つの手です。

WP_DEBUGを有効にする

WP_DEBUGを有効にするには、MyKinstaにログインし、有効にしたいサイトと環境を選択します。

「ツール」タブを開きWordPressデバッグ」「利用する」ボタンをクリックします。

MyKinstaでWordPressデバッグを有効にする
MyKinstaでWordPressデバッグを有効にする

これにより、WordPressサイトのあらゆるPHPエラー、通知、警告が表示されるようになります。これらはすべての訪問者が見ることになり、サイトのフロントとWordPress管理画面の両方に表示されます。

この段階でサイトのwp-config.phpファイルを確認すると、/* That's all, stop editing! Happy blogging. */の直前に以下が追加されていることがわかります。

if (! defined('WP_DEBUG') ) { define( 'WP_DEBUG', true ); } // line added by the MyKinsta

WP_DEBUGをtrueに設定すると、WordPressのデバッグが有効になります。

WP_DEBUGの拡張

追加のデバッグオプションを有効にすることも可能です。WP_DEBUGの補足として機能する定数がいくつかあります。

デバッグログ

エラーをログファイルに保存したい場合は、wp-config.phpファイルを編集します。WP_DEBUGを有効化したコードの後に、以下を追加することで、WP_DEBUG_LOGを有効にすることができます。

define( 'WP_DEBUG_LOG', true );

デフォルトでは、このログファイルは、サーバー上のwp-content/debug.log に保存されます。お好みに応じて、パスとファイル名を変更することができます。この例では、ログファイルをtmpディレクトリに保存し、ファイル名をwp-errors.logとしています。

define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );

スクリプトデバッグ

SCRIPT_DEBUGを有効にすると、WordPressで(通常読み込まれる圧縮されたものではなく)開発版のコアCSS、JavaScriptファイルが強制的に使用されるようになります。

define( 'SCRIPT_DEBUG', true );

これは、JavaScriptやCSSのトラブルシューティングを行う際、特にコアJavaScript、CSSファイルの競合やその他の問題が疑われる場合に有効です。

データベースクエリのデバッグ

データベースクエリを配列として保存するには、SAVEQUERIESを有効にします。

define( 'SAVEQUERIES', true );

これにより、各クエリの実行時間や、どの関数がクエリを呼び出したかなどを保存できます。この配列は、グローバル変数$wpdb->queriesでアクセスしたり表示したりすることができます。

その他のデバッグツールとリソース

プラグイン「Query Monitor」

「Query Monitor」は、WordPressのさまざまな分野のデバッグを支援してくれる無料のプラグインです。時間のかかっているデータベースクエリ、AJAX、REST APIリクエストなどを確認できます。詳しくは、Query Monitorの使い方を解説した記事をご覧ください。

Kinsta APM

KinstaのAPMはNew Relicといったサードパーティ製サービスに代わる、無料で利用できる監視ツールです。WordPressサイトのPHPパフォーマンスにおけるボトルネックを特定することができます。

New Relic

New Relicは、細かなパフォーマンスの内訳を知ることができる監視ツールです。

サーバーログ

ログファイルはMyKinstaから確認可能です。SFTPでダウンロードすることもできます。このファイルは、サイトのパフォーマンスに関する問題をトラブルシューティングする際に有用です。