ManageWP でサイトがオフラインエラーになる All-In-One Intranet 競合の直し方

ManageWP でサイトがオフラインエラーになる All-In-One Intranet 競合の直し方

ManageWP でサイトがオフラインエラーになる All-In-One Intranet 競合の直し方

ManageWP のダッシュボードでサイトが「オフライン」表示になり Worker プラグインの再接続に失敗するエラーが出る場合、All-In-One Intranet プラグインの強制ログイン機能が外部通信をブロックしている可能性が高い。プラグインを最新版にアップデートするか、提供されているフィルターフックで ManageWP のアクセスだけを許可すれば直ちに解決する。

なぜ ManageWP が All-In-One Intranet 導入後に接続不能になるのか

なぜ ManageWP が All-In-One Intranet 導入後に接続不能になるのか

All-In-One Intranet は WordPress サイト全体を非公開化するプライバシー保護プラグインだ。設定を有効にすると、訪問者がログインしていない限り、あらゆるページへのアクセスを遮断する。この制御は WordPress のリクエスト処理そのものにかかり、人間のブラウザアクセスだけでなく、バックグラウンドで動作する管理ツールの通信も一律に弾いてしまう。

ManageWP はサイトで ManageWP Worker プラグインを経由して、ダッシュボードからの一括更新や監視を実現している。この通信は非ログイン状態の外部リクエストとして届くため、All-In-One Intranet の「未ログインユーザーをブロック」のルールに引っかかり、結果として「Worker プラグインがアクティブでない」という誤ったエラーを ManageWP 側に返してしまう。

Before All-In-One Intranet が有効でアクセス遮断
ManageWP ダッシュボード Worker リクエスト Intranet がブロック エラー返送
After 除外設定を適用したあとの正常フロー
ManageWP ダッシュボード Worker リクエスト Intranet が許可 接続成功
ブロック発生時  修正後

このデモは、All-In-One Intranet が ManageWP の通信を遮断する流れと、除外設定後の正常な通信を示している。

アップデートで競合を根本解決する

アップデートで競合を根本解決する

プラグイン開発元がこの競合を把握しており、バージョン 1.10.0 で ManageWP をはじめとする外部管理ツール(MainWP、WP Umbrella など)との通信が復旧する修正が行われた。古いバージョンを使い続けているなら、まずは All-In-One Intranet を最新にアップデートするだけで問題が解消する。

アップデート前のキャッシュとバックアップ

プラグインの更新前に、サイト全体のバックアップを取得しておく。管理画面から「ダッシュボード」→「更新」を開き、「プラグイン」セクションで All-In-One Intranet の新しいバージョンの有無を確認する。

更新が完了したら、サーバーキャッシュや CDN キャッシュをすべてクリアする。ManageWP 側のキャッシュもリセットするために、対象サイトの「サイトを再接続」を一度だけ実行し、オフライン表示が消えるか確認する。

フィルターフックで ManageWP を手動除外する

フィルターフックで ManageWP を手動除外する

プラグインを何らかの理由で最新版にできない場合や、最新版でも何かしらの要因で競合が続くなら、All-In-One Intranet が用意している aioi_allow_public_access フィルターフックで ManageWP Worker のアクセスだけ許可する方法がある。このフックを使うと、サイトの他のプライバシー設定を維持したまま、特定のエンドポイントやリクエストを認証不要で通過させられる。

子テーマの functions.php にコードを追加する

フィルターフックは、利用している子テーマの functions.php にコードを追記して適用する。FTP やホスティングのファイルマネージャーで直接編集するか、管理画面の「外観」→「テーマファイルエディター」から functions.php を開く。

add_filter( 'aioi_allow_public_access', function( $allow ) {
    // ManageWP Worker の要求を常に許可する
    if ( defined( 'MWP_ACTION' ) || isset( $_GET['mwp_action'] ) ) {
        return true;
    }
    return $allow;
});

上記のコードは、ManageWP Worker プラグインがリクエストの際に内部でセットする定数やクエリパラメータを目印にしている。もし Worker プラグインが異なるパターンのリクエストを送っていたとしても、フック内の条件を適宜拡張すればよい。

コードを追加したらファイルを保存し、ManageWP ダッシュボードで対象サイトを再接続する。このタイミングでオフラインエラーが出なくなり、正常に一覧に戻ってくるはずだ。

STEP 1 子テーマの functions.php を開く
STEP 2 許可フィルターコードを追記する
STEP 3 ManageWP ダッシュボードで再接続を実行
STEP 4 オフライン表示が消え正常に管理再開

この STEP 図は、フィルターフックでアクセスを許可し、ManageWP の接続を復旧するまでの一連の流れを視覚化したものだ。

回避策が効かない場合の追加切り分け

回避策が効かない場合の追加切り分け

ごく稀に、All-In-One Intranet のバージョンアップやフィルター適用後もエラーが消えないケースがある。その場合は、他のセキュリティプラグインが重複して通信を遮断していないか確認する。

プラグインの競合を最小構成で検証する

一時的に全プラグインを無効化し、All-In-One Intranet と ManageWP Worker だけを有効化する。この状態で ManageWP が接続できるなら、ほかのプラグインに問題を起こしているものがあると判断できる。1つずつ有効化していき、再発タイミングを特定する。

ファイアウォールとサーバー設定の二重ブロックに注意する

Wordfence などの WAF(ウェブアプリケーションファイアウォール)が ManageWP の IP アドレスをブロックしている可能性もある。プラグインの設定や cPanel の IP ブロック機能で、ManageWP の公式 IP アドレス帯域が許可リストに入っているか確認する。また .htaccess にリダイレクトや BASIC 認証をかけている場合、一時的に解除して影響を切り分ける。

よくある質問

All-In-One Intranet を無効化したくないが、セキュリティは維持できるか

フィルターフックによる除外は、ManageWP Worker が利用する特定のリクエストに絞って施せる。サイトの他の全ページは引き続きログイン必須の状態を保つため、セキュリティレベルを落とすことなく管理だけを外部から行える。コードの条件式を Worker 限定にすることで、意図しない一般リクエストの流入は防がれる。

ManageWP 以外の管理ツールでも同じ問題は起きるのか

MainWP、WP Umbrella など、サイトに Worker 的なプラグインを入れて外部から操作する仕組みの管理ツール全般で発生する可能性がある。All-In-One Intranet のバージョン 1.10.0 ではこれらツールとの互換性も修正されているため、最新版で問題が起きることはほぼない。

アップデート後に ManageWP がまだオフライン表示のままだがどうすればいいか

まず ManageWP のダッシュボードで該当サイトを明示的に「再接続」させる。続いてサーバー側のキャッシュ(プラグインベースのキャッシュやホスティングのサーバキャッシュ)を完全にクリアする。それでも反映されない場合、Worker プラグイン自身をいったん削除し、ManageWP ダッシュボードから新規にインストールし直すと設定がリフレッシュされる。

functions.php を直接編集するのに抵抗がある。安全な方法はあるか

必ず親テーマではなく子テーマの functions.php を編集する。編集前にファイルをダウンロードしてバックアップし、テーマファイルエディターを使う場合は保存前にコードの誤字を確認する。それでも不安なら、Code Snippets プラグインを導入し、管理画面からスニペットとして同じコードを追加する方法もある。

数か月前から Worker の再接続に失敗していたが、データは失われるか

ManageWP 側の管理データ(サイトの追加設定や監視ログなど)は失われない。再接続が成功すれば、プラグインやテーマの更新状況はそのまま引き継がれる。ただし、オフライン期間中にあったサイト側の変更は、再接続後に初めて ManageWP 側で認識される。

この記事のポイント

  • ManageWP のオフラインエラーは All-In-One Intranet のプライバシー保護が原因
  • プラグインの 1.10.0 へのアップデートで競合は根本的に解決する
  • すぐ対応したい場合は aioi_allow_public_access フィルターで手動除外
  • コード追加は子テーマの functions.php に限定しバックアップを取る
  • キャッシュクリアと再接続の実行を必ず忘れずに行う
佐々木 太陽

・ Reddit、Stack Overflow、WordPress.org フォーラムを日々巡回し、現場の悩みを拾い上げて記事化 ・ WordPress、WooCommerce、Next.js などモダンWeb制作領域のトラブルシューティングが専門 ・ 「検索しても答えが見つからなかった」を一つでも減らすことが目標 ・ エラーメッセージから根本原因にたどり着く粘り強い調査が得意 ・ 初心者がつまずきやすい箇所を先回りで解決する記事作りを心がけている

メッセージを残す