アクティビティログとWordPressマルチサイト
アクティビティログプラグインはWordPressマルチサイトネットワークと互換性があります。ネットワーク全体で有効化して単一の場所からすべてのサイトを監視することも、必要に応じて個々のサイトで有効化することもできます。この記事では、マルチサイトでの有効化の仕組みと、サイト固有のフィルタリング機能の使用方法について説明します。
マルチサイトネットワークでの有効化
アクティビティログは、マルチサイトのインストールで次の2つの方法で有効化できます。
ネットワーク有効化 — ネットワーク管理 › プラグインに移動し、アクティビティログをネットワーク全体で有効化します。これにより、ネットワーク上のすべてのサイトでプラグインが自動的に有効化され、各サイトのログデータベーステーブルが作成されます。ネットワークに追加された新しいサイトでも、プラグインは自動的に有効化されます。
サイト別有効化 — 各サイト固有のプラグイン画面から、特定のサイトでのみプラグインを有効化します。これにより、どのサイトが監視されているかをより詳細に制御できます。
プラグインがネットワーク全体で有効化されている場合、イベントログはイベントメタデータにnetwork_wide: trueフラグを記録するため、サイト別の変更とネットワーク全体でのプラグインの変更を区別できます。
イベントの記録方法
アクティビティログによって記録されるすべてのイベントには、イベントが発生したサイトのWordPressブログIDに対応するsite_idフィールドが含まれています。標準的な単一サイトのインストールでは、これは常に1です。マルチサイトでは、各サブサイトには独自のブログIDがあります。
これは、ネットワーク全体のすべてのイベントが単一のログテーブル(wp_dactlog_activity_log)に記録され、各行が出所のサイトにタグ付けされていることを意味します。いつでもサイトIDでフィルタリング、エクスポート、クエリを実行できます。
管理画面でのサイト別フィルタリング
特定のサイトの管理エリア(アクティビティログ › アクティビティログ)からアクティビティログを表示する場合、ログは自動的にそのサイトのイベントのみを表示します。
ネットワーク上のすべてのサイトのイベントを表示するには、ネットワーク管理エリアからアクティビティログにアクセスします。そこでは、ネットワーク上のすべてのサイトからのイベントが表示され、各行が出所のサイトでオブジェクト列にタグ付けされます。
WP-CLIでのサイト別フィルタリング
マルチサイトネットワークでWP-CLIを使用する場合、--site_idフラグを使用してエクスポートを特定のサイトにスコープします。
wp duplicator-activity-log export --site_id=2
エクスポートしたいサイトのブログIDを2に置き換えます。サイトのブログIDを見つけるには、次を実行します。
wp site list --fields=blog_id,url
--site_idを他のエクスポートフラグと組み合わせることができます。たとえば、サイト3からすべての高重大度のイベントをエクスポートするには、次のようにします。
wp duplicator-activity-log export --site_id=3 --severity=high --format=csv > site3-high.csv
サイト別設定 vs ネットワーク全体設定
アクティビティログの設定(一般、イベント、通知)はサイト別に構成されます。ネットワーク上の各サイトには、独自の:
– ログ保持期間 – 有効/無効なイベントカテゴリ – 通知受信者とトリガー – ログ記録方法(同期対非同期)
ネットワークレベルでのグローバル設定の上書きはありません。各サイト管理者が独自のアクティビティログ設定を管理します。ただし、ライセンスのアクティベーションは、プラグインがネットワークアクティベートされたときにネットワークレベルで処理され、ライセンスサイト数はネットワーク上のすべてのサイトをカバーします。
コマンドラインからログデータをエクスポートするには、WP-CLI をアクティビティログで使用するを参照してください。