
セキュリティプラグインがテーマファイルを隔離してサイトが表示されない時の復旧手順
セキュリティプラグインが BeTheme の必須ファイルを誤検知して隔離し、WordPress サイトが表示されなくなった場合、まず隔離画面から「復元」を実行し、失敗したら FTP やバックアップから theme-shortcodes.php を戻す。その後キャッシュを削除してテーマが有効であることを確認すれば、サイトは復旧する。
なぜテーマファイルの隔離でサイト全体が表示されなくなるのか

WordPress はアクセスがあるたびに、有効化しているテーマの functions.php と、そのテーマが読み込む必須ファイルを実行する。BeTheme の場合、テーマ本体が theme-shortcodes.php を include して短コードの定義などを登録している。このファイルが隔離で消えると、PHP の致命的エラーが発生してページ全体が止まる。
セキュリティプラグインの隔離機能は、怪しいと判定したファイルを元の場所から移動するか、拡張子を変えて読み込めない状態にする。マルウェア対策としては有効だが、正規のテーマファイルを誤検知すると、テーマごと起動できなくなる。同様のことはテーマだけでなく、プラグインの必須ファイルでも起こる。
その結果、画面には「このサイトで重大なエラーが発生しました」という趣旨のエラーが表示されるか、真っ白な画面になる。管理画面にも入れないケースが多いため、復旧はサーバー側からの操作が中心になる。
WordPress が BeTheme の functions から theme-shortcodes.php を読み込み、サイトが表示される
theme-shortcodes.php が見つからず PHP の致命的エラーになる。サイトは「重大なエラー」で表示不可
テーマ必須ファイルの隔離前と隔離後の状態の違いを示す。
隔離されたファイルを復元する2つの方法

隔離されたテーマファイルの復元は、セキュリティプラグインの管理画面から試す方法と、FTP やバックアップから直接戻す方法の 2 通りある。まず隔離画面から復元し、エラーになる場合は後者を使う。
ファイル復旧からサイト表示確認までの全体の流れを 4 ステップで示す。
セキュリティプラグインの隔離画面から復元する
CleanTalk のセキュリティ機能では、管理画面のセキュリティメニューから隔離タブを開くと、隔離したファイルの一覧が表示される。各ファイルには「復元」または「Restore」ボタンがあるので、該当の theme-shortcodes.php を選んで復元を実行する。
復元に失敗し「エラーが発生しました」「テクニカルサポートに連絡してください」という趣旨の表示が出る場合、プラグイン側でファイルを書き戻す権限が足りないか、隔離時のコピーが壊れている可能性がある。この状態ではプラグイン画面からの復元はあきらめ、次の方法に移るのが早い。
FTP やバックアップから対象ファイルを直接戻す
FTP クライアントでサーバーに接続し、/wp-content/themes/betheme/functions/ ディレクトリを開く。theme-shortcodes.php が存在しないか、拡張子が .quarantine や .bak のように変わっていないかを確認する。ファイルが残っているのに WordPress が読み込めない場合は、正規のバックアップから同じファイルを上書きアップロードする。
バックアップがない場合は、公式の配布元から BeTheme の同じバージョンの zip を入手し、functions フォルダだけをアップロードする。テーマ全体を上書きしても問題はないが、親テーマの functions.php に直接コードを追記していた場合は消えるため、事前にバックアップを取っておく。子テーマを使っていればカスタマイズは残る。
ファイルを復元してもサイトが表示されない時の確認手順

ファイルの復元が終わってもサイトが真っ白なまま、またはエラーが続く場合、残っているキャッシュやテーマの有効状態、ファイル権限が原因になっていることが多い。次の順で確認する。
キャッシュをすべて削除する
ブラウザのキャッシュに加えて、WordPress のキャッシュプラグイン、サーバー側のキャッシュ、CDN のキャッシュをすべてクリアする。復元したファイルが正しくても、キャッシュに残ったエラーページや読み込み失敗の状態が配信され続けると、ブラウザではサイトが壊れたままに見える。
キャッシュプラグインが管理画面から操作できない場合は、wp-content/cache/ ディレクトリの中身を FTP で削除する。サーバー側のキャッシュはコントロールパネルからクリアし、CDN を使っている場合は配信側のキャッシュ削除も必要になる。
テーマが有効なままかを確認する
WordPress はアクティブなテーマの必須ファイルが読み込めないと、テーマを無効化して標準テーマにフォールバックすることがある。管理画面の「外観」から「テーマ」を開き、BeTheme がアクティブのままか確認する。別のテーマになっていれば BeTheme を再度有効化する。
wp-content/themes/ 配下のフォルダ名がリネームされている場合も同じ事象が起こる。隔離機能がファイルを移動したのか、フォルダ名を変えたのかはサーバー側で確認する。フォルダ名が変わっていれば正しい名前に戻す。
ファイルの権限と所有者を確認する
FTP で復元したファイルのパーミッションが適切でないと、WordPress が読み込めないことがある。PHP ファイルの権限は一般的に 644、ディレクトリは 755 に設定する。レンタルサーバーの場合、ファイルの所有者が FTP ユーザーとウェブサーバープロセスで異なると読み込みに失敗するため、サーバーのコントロールパネルで所有者も確認する。
エラーログで失敗原因を特定する
それでも復旧しない場合は、サーバーのエラーログを見て PHP がどのファイルの読み込みに失敗しているかを特定する。wp-config.php にデバッグ設定を追加してエラーをログに出力させると、どの行で止まっているかが確認できる。
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);誤検知を防いで再発させないための設定

正規のテーマやプラグインが隔離される事故を防ぐには、信頼できるファイルをスキャンの除外リストに登録し、バックアップ体制を整えておく。誤検知は一度きりとは限らないため、同じファイルが再度隔離される可能性も考えておく。
誤検知したファイルをスキャン対象から除外する
CleanTalk のセキュリティ機能を使っている場合、誤検知したファイルをスキャンのホワイトリストに追加できる。管理画面のセキュリティ設定から「除外」または「無視リスト」を開き、隔離されたファイルのパスを登録する。テーマ全体を除外するとセキュリティの効果が薄れるため、対象ファイルだけを追加するのが基本だ。
テーマとプラグインは公式の配布元から入手して更新する
マーケットや公式ディレクトリ以外から入手したテーマには、改ざんされたファイルが含まれていることがある。BeTheme は公式の配布元からのダウンロードに限定し、アップデートが配信されたらすぐに適用する。正規のファイルが最新の状態なら、セキュリティスキャナーが誤検知する確率も下がる。
復旧に使えるバックアップを毎日残す
誤検知でサイトが落ちた場合、最短の復旧手段はバックアップからのファイル復元だ。レンタルサーバーの自動バックアップに加えて、WordPress のバックアッププラグインで週 1 回以上のフルバックアップを取っておく。バックアップの保存先はサーバー内だけでなく、外部ストレージにも残すとより安全だ。
よくある質問
セキュリティプラグインがテーマファイルを隔離するのはなぜ?
マルウェアスキャンがファイルのコードパターンを怪しいと判定したためだ。正規のテーマでも、短コードを定義するコードや eval に似た記述があると誤検知されやすい。BeTheme の theme-shortcodes.php は短コードを大量に登録するファイルで、この種の誤検知が起こりやすい。
隔離解除ボタンを押してもエラーになる理由は?
多くはファイルを書き戻す権限の問題だ。サーバーのディレクトリ権限が狭い、ファイル所有者が違う、隔離時の一時ファイルが壊れているなどの理由が考えられる。この場合 FTP やバックアップから手動で戻すのが確実だ。
FTP が使えないサーバーの場合は?
レンタルサーバーのコントロールパネルにファイルマネージャーがあるなら、それでファイルをアップロードできる。それも難しい場合は、サーバー会社のサポートに連絡し、隔離されたファイルの復元と権限確認を依頼する。
テーマを再インストールするとカスタマイズは消える?
親テーマのファイルを上書きするだけなら、データベースに保存されたカスタマイザー設定は残る。ただし親テーマの functions.php に直接コードを追記していた場合は消えるため、事前にバックアップを必ず取ってから行う。子テーマを使っていれば安全だ。
管理画面にも入れなくなった場合は?
FTP でテーマフォルダの名前を一時的に変えると、WordPress が自動的に標準テーマへ切り替えて管理画面に入れるようになる。その後、正しいファイルを戻してからテーマを再度有効化する。
この記事のポイント
- セキュリティプラグインの隔離でテーマの必須ファイルが消えるとサイト全体が停止する
- まず隔離画面から復元し、失敗したら FTP かバックアップで対象ファイルを戻す
- 復元後はブラウザ・プラグイン・サーバーのキャッシュをすべて削除する
- テーマが有効なままか、ファイルの権限が正しいかを確認する
- 誤検知したファイルはスキャンの除外リストに登録して再発を防ぐ

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

WordPressでwp-adminとwp-login.phpがトップページにリダイレクトされる原因と対処法
WordPressでwp-adminやwp-login.phpにアクセスしてもトップページへリダイレクトされる場合、原因はセキュリティプラグインによるログインURLの変更、.htaccessのリダイレクト設定、またはCloudflareのページルールであることが多い。ホスティング管理画面にアクセスできない状態でも、まずは非表示ログインURLの候補を順に試し、解決しなければホスティング会社に所有証明を添えて連絡するのが最も確実な復旧経路だ。
なぜwp-adminとwp-login.phpがトップページへ飛ばされるのか

ログインページへのアクセスがホームページへリダイレクトされる症状には、いくつか典型的な原因がある。最も多いのがセキュリティプラグインやログインURL変更プラグインによるURLの秘匿化だ。Elementorなどのページビルダーがログインリダイレクトを引き起こすことはほとんどないため、まずはセキュリティ機能まわりを疑う。
セキュリティプラグインによるログインURLの変更
WPS Hide Login、iThemes Security、All In One WP Securityなどのプラグインは、ログインページのURLを任意の文字列に変更できる。デフォルトのwp-login.phpやwp-adminを無効化し、たとえば「/login/」や「/member/」など開発者が設定したURLだけを有効にする。この機能が有効な状態では、元のURLにアクセスするとホームページへリダイレクトされるのが一般的な挙動だ。
.htaccessに記述されたリダイレクトルール
サーバーの.htaccessファイル(Apacheの設定ファイル)に、wp-adminやwp-login.phpを対象にしたリダイレクトルールが記述されているケースもある。セキュリティ対策として意図的に追加された場合と、不正アクセスによる改ざんの両方が考えられる。改ざんの場合は他のファイルにも不正なコードが仕込まれている可能性があるため、注意が必要だ。
CloudflareのページルールやWAF設定
ドメインのネームサーバーがCloudflareに向いている場合、Cloudflare側のページルールやWAF(Webアプリケーションファイアウォール)のカスタムルールがwp-adminやwp-login.phpへのアクセスをブロックまたはリダイレクトしている可能性もある。Cloudflareの管理画面にアクセスできなければこの設定を確認できないため、原因の切り分けが難しくなる。
カスタムコードによるリダイレクト
テーマのfunctions.phpやmu-plugins(マストユースプラグイン、プラグイン画面から無効化できない自動有効プラグイン)に、ログインURLをリダイレクトするカスタムコードが書かれていることもある。制作会社やフリーランスの開発者がセキュリティ目的で追加するケースが多く、ドキュメントが残っていないと原因の特定に時間がかかる。
ホスティングにアクセスできない時にできる確認と対処

ホスティング管理画面もCloudflareも使えない状況でも、できる確認は残っている。順番に試していくことで、サーバーに触らずにログインできるケースもある。下の図は復旧までの流れをまとめたものだ。
ホスティングやCloudflareにアクセスできない状態で行う確認の流れ。非表示URL候補の試行から始め、それで解決しなければホスティング会社への直接連絡に進む。
非表示ログインURLの候補を順番に試す
ログインURL変更プラグインが使われている場合、実際のログインページはデフォルトのwp-adminやwp-login.phpではない。よく使われる候補として「/login/」「/admin/」「/dashboard/」「/member/」「/members/」「/my-account/」「/wp-login.php?redirect_to=/wp-admin/」などがある。サイトのURLの末尾にこれらを付けて、ログイン画面が表示されるかを確認する。
また、サイトのフッターやお問い合わせページにログインリンクが設置されていないかも確認する。リンク先が非表示ログインURLになっていることがある。サイト内検索で「login」「ログイン」という文字列を探すのも有効だ。
シークレットウィンドウでキャッシュとクッキーの影響を排除する
ブラウザのキャッシュやクッキーが原因でリダイレクトが発生している可能性を排除するため、シークレットウィンドウ(プライベートブラウジング)で同じURLにアクセスする。シークレットウィンドウでも同じ症状が出るなら、ブラウザ側のキャッシュではなくサーバー側の設定が原因だと判断できる。
検索エンジンのキャッシュから過去のログインページを探す
GoogleやBingのキャッシュに、過去のログインページのURLが残っていることがある。検索エンジンで「site:example.com ログイン」や「site:example.com wp-admin」のように検索すると、過去にインデックスされたログイン関連ページが見つかる場合がある。キャッシュされたURLが非表示ログインURLの手がかりになる。
ホスティング会社に直接連絡して管理アクセスを取り戻す手順

ログインURLの候補を試しても解決せず、開発者にも連絡がつかない場合、ホスティング会社に直接連絡して管理アクセスを取り戻すのが最も確実な方法だ。契約者が誰であっても、所有証明を提示すれば対応を受けられるケースが多い。
所有証明書類を準備する
ホスティング会社に連絡する前に、サイトの所有者であることを証明できる書類を準備する。具体的にはホスティングやドメインの契約時の請求書、支払い明細、クレジットカードの利用履歴、登録メールアドレスに届いた契約確認メールなどだ。ドメインのwhois情報に自分の名前が登録されていれば、それも有力な証明になる。
サポート窓口に状況を正確に伝える
ホスティング会社のサポート窓口(電話、チャット、メールフォーム)に連絡し、次の3点を簡潔に伝える。「サイトのドメイン名」「wp-adminがホームページへリダイレクトされてログインできない状況」「開発者が管理しているため管理画面のログイン情報を持っていないこと」。所有証明を求められたら、準備した書類を提示する。
アクセス回復後に依頼する作業
ホスティング会社から管理画面やFTPのアクセス権を回復したら、次の作業を依頼するか自分で行う。まず.htaccessファイルのバックアップを取り、リダイレクトルールの有無を確認する。次にwp-content/plugins/ディレクトリを一時的に別名にリネームして全プラグインを無効化し、ログインできるか試す。これが原因の切り分けとして最も確実な手順だ。
サーバーアクセスを回復した後に直すべき箇所

サーバーやFTPにアクセスできるようになったら、原因箇所を特定して修正する。下の図は.htaccessの修正前後のイメージだ。
RewriteRule ^wp-admin$ / [R=301,L]
RewriteRule ^wp-login\.php$ / [R=301,L]
# WordPress デフォルトのルールのみ残す
.htaccessのリダイレクトルールを削除することで、wp-adminとwp-login.phpへのアクセスが正常に戻るイメージ。変更前に必ずファイルのバックアップを取る。
.htaccessを確認してリダイレクト設定を削除する
FTPクライアントやファイルマネージャーでサーバーに接続し、WordPressのルートディレクトリ(通常はpublic_htmlまたはドメイン名のフォルダ)にある.htaccessファイルをダウンロードする。ファイルを開き、wp-adminやwp-login.phpを対象にしたRewriteRule(リライトルール、URL変換の設定)が記述されていないかを確認する。該当する行があれば削除して上書きアップロードする。
セキュリティプラグインを無効化して切り分ける
.htaccessに問題が見つからない場合、FTPでwp-content/plugins/ディレクトリの名前を一時的に変更する(例、plugins → plugins_bak)。これで全プラグインが無効化される。その後wp-adminにアクセスしてログイン画面が表示されるかを確認する。表示されればプラグインが原因だ。プラグインディレクトリを元の名前に戻し、セキュリティ系プラグインを1つずつ無効化しながら原因を特定する。
wp-config.phpとデータベースの設定を確認する
wp-config.phpに、ログインURLを変更する定数(WP_ADMIN_DIRやWP_HOME、WP_SITEURLなど)が追加されていないかも確認する。また、データベースのwp_optionsテーブルにあるsiteurlとhomeの値が実際のサイトURLと一致しているかを確認する。これらが不整合を起こしていると、リダイレクトループが発生することがある。
ログインページが飛ばされないための再発防止策

ログインページにアクセスできなくなる問題は、適切なアクセス管理とドキュメント化で再発を防げる。とくに外部の開発者に管理を委託している場合は、以下の対策を講じておくことが重要だ。
ログインURLの変更内容を記録して共有する
ログインURLを変更するプラグインを使う場合、変更後のURLを必ずドキュメントに記録し、サイト所有者と開発者の両方で共有しておく。パスワード管理ツールにログインURLと資格情報をまとめて保管するのが実用的だ。URL変更の設定をしたこと自体を忘れてしまうと、今回のようにログイン画面へ到達できなくなる。
ホスティングとドメイン管理へのアクセス権を確保する
サイト運営者自身がホスティング管理画面とドメイン管理画面のログイン情報を保持していない状況は、サイトの所有権を実質的に手放しているのと同じだ。開発者に管理を委託する場合でも、管理者アカウントの追加権限だけは共有してもらい、緊急時にアクセスできる状態を維持する。
定期的なバックアップと復旧手順の確認
ログインページがリダイレクトされる問題に限らず、サイトのトラブル全般に備えて定期的なバックアップを取得しておく。バックアップからの復旧手順も一度シミュレーションしておくと、緊急時に慌てずに対処できる。バックアップに含めるのはデータベースとwp-contentディレクトリの両方だ。
よくある質問
セキュリティプラグインを入れていないのにリダイレクトされるのはなぜ?
セキュリティプラグインがなくても、.htaccessのリダイレクトルール、Cloudflareのページルール、テーマのfunctions.phpに書かれたカスタムコードが原因になる。また、サイトが改ざんされている場合は、不正なコードがリダイレクトを引き起こしている可能性もある。サーバーのファイルを直接確認するのが確実な切り分け方法だ。
ホスティング会社に連絡する時に何を伝えればよい?
ドメイン名、wp-adminがホームページへリダイレクトされる状況、管理画面のログイン情報を持っていないことの3点を伝える。所有証明として請求書や支払い明細、契約確認メールを求められた場合に備えて準備しておく。whois情報に自分の名前が登録されていればそれも提示できる。
Cloudflareのページルールが原因だった場合、どうすればよい?
Cloudflareの管理画面にアクセスできるなら、ページルールとWAFのカスタムルールを確認し、wp-adminとwp-login.phpを対象にしたブロックやリダイレクト設定を無効化する。アクセスできない場合は、Cloudflareのサポートに所有証明を提示してアクセス回復を依頼する。ドメインのwhois情報が自分名義であれば回復できる可能性が高い。
ログインURLを変更した覚えがないのに変更されていた場合、ハッキングの可能性は?
可能性はある。サイトの改ざんによって.htaccessやfunctions.phpにリダイレクトコードが仕込まれたケースも報告されている。ログインできるようになったら、WordfenceやSucuriなどのセキュリティプラグインでスキャンを実行し、不審なファイルや管理者ユーザーがいないかを確認する。パスワードの全面変更も推奨される。
開発者に連絡がつかないままサイトを移管するには?
ホスティング会社からFTPと管理画面のアクセス権を取得したら、データベースのエクスポートとwp-contentディレクトリのダウンロードを行い、新しい環境へ移管する。DNS設定を変更して新しいサーバーに向ける。ドメインの管理権限が自分にあれば、移管は比較的スムーズに進む。旧環境の支払いが止まってサイトが消失する前に、早めの移管作業が重要だ。
この記事のポイント
- wp-adminとwp-login.phpがホームへリダイレクトされる主因はセキュリティプラグインのURL変更、.htaccess、Cloudflare設定
- ホスティングなしでも非表示ログインURLの候補試行やシークレットウィンドウ確認は可能
- 開発者に連絡がつかない場合はホスティング会社へ所有証明を添えて直接連絡する
- サーバーアクセス回復後は.htaccess確認とプラグイン無効化による切り分けが有効
- 再発防止にはログインURLの記録共有とホスティング管理権の自己保持が欠かせない

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