【完全版】WordPress移行後に表示崩れ・ログインできない原因と解決方法

  • URLをコピーしました!

WordPressサイトを運用していると、

突然管理画面にログインできなくなったり、サイトの表示が崩れたりすることがあります。

特に、サイトの移管作業後にこのような問題が発生することは珍しくありません。

この記事では、私が実際に経験した

「ログインできない」「サイト表示が崩れる」というクリティカルな状況から、

復旧するまでの原因と対処法について解説します!

かわてつ

ノーコードからオリジナルテーマに変える
同ドメインで、ペライチ等のサービスからWordPressに変える

上記のような作業を行なった時に、
実際サイトの表示が崩れたり、管理画面にログインできないことがありました、、、、

「大体これで解決しました!」という内容をピックアップしてご紹介します!

目次

表示が崩れる問題

移管後にサイトの見た目が崩れたり、CSSが適用されていないといった問題は、

主にURL設定の不整合やキャッシュの残存が原因で発生します。

考えられる原因

考えられる原因を記載していきます!

【原因①】URL設定の不一致

サイトをインポートした際、

WordPressのデータベース内のURL(特にwp_optionsテーブルにあるsiteurlとhome)が、

本番環境の正しいURLではなく、

旧環境(ローカル環境など)のURLのままになっている可能性があります。

これにより、CSSやJavaScriptファイルを読み込む際に、誤ったローカルURLを参照してしまい、ビューが崩れてしまいます。

検証ツールのコンソールに、

Mixed Content: The page at 'https://test.com/' was loaded over HTTPS, but requested an insecure stylesheet 'http://test.local/wp-content/uploads/elementor/css/post-7.css?ver=1747671256'. This request has been blocked; the content must be served over HTTPS. GET https://test.local/wp-content/cache/wpfc-minified/77jd7nt4/67fx7.css 

のようなエラーがあれば、ローカル環境のURLが残っているからCSSやJSの読み込みに失敗しているということです。

【原因②】キャッシュ・Cookieの不整合

インポート直後は、ブラウザやサーバー側のキャッシュ、Cookieの情報が新しい環境と合致せず、

古い設定を読み込んでしまうことがあります。

例えば、スマホ実機で見たときは正しく表示されるのに、PCで表示が崩れるという現象は、

PCが壊れた設定を読み込んでいる可能性が高いです。

【原因③】ノーコードテーマ(Elementor等)やキャッシュ系プラグインの特性

例えば、

ElementorはCSSをファイルだけでなくデータベース内にも保存するため、

移行時にローカルURLがDBに残ったり

/uploads/elementor/css/に生成されるCSSがローカルURLで保存されていることがよくあります。

また、「WP Fastest Cache」などのキャッシュ系プラグインは、

キャッシュや圧縮処理、リダイレクト処理などを.htaccessファイルに自動で書き込んだり、

独自にファイルを最適化したりするため、不整合が発生しやすいです。

wpfc-minifiedといったキャッシュフォルダ内の古いファイルが読み込まれると、表示崩れが解消されない原因となります。

対処法

かわてつ

まずは先方から、FTP情報をいただいてください!!
その前提で進めます。

【対処法①】wp-config.phpでのURL強制定義

FTPでwp-config.phpファイルにアクセスし、

/* That's all, stop editing! Happy publishing. */

というコメントの直前に以下の2行を追加します

define('WP_HOME', 'https://aaaaaa.com');
define('WP_SITEURL', 'https://aaaaaa.com');

URLは本番環境のURLを記載してください。

これによりWordPressが正しいURLでCSSやJSを出力するようになり、

表示が改善される可能性があります。

【対処法②】キャッシュ系プラグインの無効化とキャッシュ削除

FTPで/wp-content/plugins/フォルダにあるキャッシュ系プラグイン(例: wp-fastest-cache)のフォルダ名を一時的に変更し、プラグインを無効化します。

例えば、

「wp-fastest-cache」を「_wp-fastest-cache」のように変更することで、プラグインを無効化することができます!

プラグインが影響している場合はこちらで解消されます。

(原因になりそうなものだけではなく、一時的に全てのプラグインをリネームしてもOKです!

/wp-content/pluginsフォルダ全体を一時的にplugins_bakなどにリネームすると、全てのプラグインを無効化できます!)

次に、キャッシュを削除します。

キャッシュは/wp-content/cache/フォルダ内です。

特に「wpfc-minified」のようなキャッシュファイルが格納されているフォルダを完全に削除します。

htaccessファイル内の

WP Fastest Cacheなどが書き込んだキャッシュ制御の記述(例: # BEGIN WpFastestCacheから# END WpFastestCacheまでのブロック)が残っていれば、

一時的にコメントアウトまたは削除することも有効です。

かわてつ

表示確認をする際は、ブラウザのキャッシュを削除したり、
シークレットモードで確認しましょう!

ログインができない問題

考えられる原因

【原因①】セキュリティ系プラグインによる制限

「SiteGuard WP Plugin」や「Wordfence」、「iThemes Security」などのセキュリティプラグインが、

ログインURLを変更したり(例: wp-login.phpをlogin_65250に変更している等)、

特定のIPアドレスからのアクセスをブロックしている可能性があります。

プラグインによっては、ログ・設定保持用のフォルダも使用しているため、本体を無効化しても影響が残る場合があります。

【原因②】WordPressのユーザー情報破損

サイト移行時にデータベースのwp_usersテーブル内のユーザー情報が正しく移行されず、

実際のパスワードと合致しなくなっている可能性があります。

管理画面でログイン情報を入力した際に、「ユーザー名またはパスワードが間違っています」というメッセージが表示される場合はこの可能性が高いです。

【原因③】ログイン画面のCSS/JS読み込み失敗

サイトの表示崩れと同じ原因(URL設定の不一致など)で、ログイン画面のCSSやJavaScriptが正しく読み込めず、

ログインフォーム自体が機能しない状態になることがあります。

この場合、エラーメッセージが出ずにログイン画面にリダイレクトされることがあります。

【原因④】古いAll-in-One WP Migrationバージョンの使用

容量制限を回避するために旧バージョンを使用した際、

PHPバージョンとの互換性やデータベース構造の不整合が発生し、ログイン情報が壊れる原因となることがあります。

対処法

【対処法①】新しい管理者アカウントの作成

既存のユーザーでログインできない場合、

一時的に新しい管理者アカウントを作成してログインを試すことは有効です!

FTPを使用して、functions.phpに以下のコードを追記し、アカウントを作成します。

function create_temp_admin_user() {
    $username = 'tempadmin';
    $password = 'TempPass123!';
    $email = 'tempadmin@example.com';

    if ( ! username_exists( $username ) && ! email_exists( $email ) ) {
        $user_id = wp_create_user( $username, $password, $email );
        $user = new WP_User( $user_id );
        $user->set_role( 'administrator' );
    }
}
add_action( 'init', 'create_temp_admin_user' );

上記の例だと、

「tempadmin」がユーザー名で、「TempPass123!」がパスワードです!

(ユーザー名とパスワードは好きなものにしてください!)

作成したログイン情報で、管理画面にログインしてみましょう!!

ログインができたら、

ログインできなかったユーザーのパスワードを変更したりしてみて元通りに戻せるか試してください。

ログイン成功後、functions.phpに記載したコードは必ず削除してください!

(functions.phpの記述を消しても、作成したユーザーが削除されることはありません。)

【対処法②】管理者パスワードのリセット

対処法①は新規でユーザーを追加する方法でしたが、こちらは既存のユーザーのパスワードをリセットするやり方です。

functions.phpにパスワードリセットの記述をします。

function reset_admin_password(){
  $user = get_user_by('login', 'admin'); // admin部分はユーザー名に合わせてください
  if($user){
    wp_set_password('NewPassword123!', $user->ID);
  }
}
add_action('init', 'reset_admin_password');

上記の例だとパスワードは「NewPassword123!」です。

こちらをもとにログインを試みてください。

サーバーの管理画面へのログイン情報をいただける場合は、

phpMyAdminにアクセスし、wp_usersの値を更新しても対応できます!

【対処法③】プラグインの無効化

こちらは前述した、「ログインできない問題」の【対処法②】と同じです。

FTPでプラグインのフォルダ名を適当な名前に変更するやり方です。

【対処法④】wp-config.phpでのURL強制定義

こちらは前述した、「ログインできない問題」の【対処法①】と同じです。

まとめ

以上が表示崩れとログインができない問題の原因と対処法です。

基本的には、

  • プラグインやキャッシュをFTPでリネームして無効化
  • functions.phpに新規ユーザーを作成してその情報でログイン
  • URL強制定義(wp-config.phpに記載)

で大体治ることが多いです。

いきなりビューが崩れてたりログインができなくなるとめっちゃ焦りますが、今回紹介した内容を順番に対応していけば解決できると思います!!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次