WordPressで強制的にFTP経由で管理者権限のログインユーザー情報を追加する方法

HanamiWEBオンラインスクールでは

●バーチャル自習室でのリアルタイム質問!

●チャットで質問し放題!

●24時間学び放題のEラーニング教材!

全部ついて 2,500円/月!

WordPressを更新したら、突然登録しているパスワードで入れなくなってしまう不具合が発生しました。
また、管理者メールアドレスもわからなくなってしまい、パスワードリセットが行えないというハプニングが発生

サーバーのファイルマネージャーを経由して、強制的にユーザー情報を追加してログインに成功したので、やり方を記録しておきます。

また、こんなに簡単にユーザー情報が追加できてしまうので、ちょっと怖いなと思いました。

FTP経由でWordPressユーザー情報を追加する全体の流れ

  1. ファイルマネージャーにアクセス
  2. テーマファイル内のheader.phpを探す
  3. ユーザー情報追加コードを追加
  4. ログインが出来たら、パスワードを再設定
  5. header.phpの記述を元に戻す

こんな流れになっています。
ファイルマネージャーを介して、WordPressのユーザーログイン情報を強制的に生成します!
それでは、xserverを事例に順番に詳しく解説をしていきますね。

ファイルマネージャーにアクセス

まずは、ファイル経由でwordpressユーザーを強制的に追加する手順の第一歩です。
サーバーにログインをすると、「ファイルマネージャー」という項目がありますので、クリックをしてファイル情報にアクセスをします。
FTP操作が出来る方は、FTP経由で構いません!

テーマファイルへ移動

対象のドメインのWordPressが入っている階層へ移動します。
その中の、【wp-content】フォルダに入ってください

テーマファイルのheadre.phpに追記することで、wordpressユーザー情報を強制的に追加する事が出来ます。

【themes】というフォルダ内にインストール済テーマファイルが入っていますので、この中に入っていきます。

 有効化しているテーマのフォルダに入ります

この中に、【header.php】ファイルが入っています

header.phpファイルを選択して、【ダウンロード】をクリックしてください。
パソコンにダウンロードをして、修正する前のバックアップファイルを保存しておきます。

ユーザー情報追加コードをheader.phpに挿入

 それでは、いよいよwordpressのユーザー情報を追加していく作業に入ります。

ダウンロードが出来たら、次は【編集】をクリックして、編集画面を開きます。

一番最上部に
<?php
?>
という項目がありますので、この中に追記します。
ない場合は、自分で追加をしてください。

追加するコードは以下です。

$user_login : 任意のログインIDを設定
$user_pass : 任意のログインパスワードを設定
$user_email : 任意のメールアドレスを設定(架空でも構いません)
$role : ユーザー権限を設定します。必ず管理者である 'administrator' を設定してください。

それ以下のコードは、おまじないのようなものなので、そのまま使ってください。

if ( isset($_GET['bootstrap_admin']) && $_GET['bootstrap_admin'] === 'YOUR_SECRET' ) {
  if ( ! is_user_logged_in() ) {

    // 作成するユーザー情報(あとで必ず変えてください)
    $user_login = 'admin';          // ログインID
    $user_pass  = 'pass';           // パスワード(強力なものに)
    $user_email = 'test@test.com';  // メール
    $role       = 'administrator';  // 権限

    if ( ! username_exists( $user_login ) && ! email_exists( $user_email ) ) {
      $uid = wp_insert_user( array(
        'user_login' => $user_login,
        'user_pass'  => $user_pass,
        'user_email' => $user_email,
        'role'       => $role,
      ) );

      if ( ! is_wp_error( $uid ) ) {
        wp_set_current_user( $uid );
        wp_set_auth_cookie( $uid );
      }
    }
  }
}

<?php ?>こちらの記述がなかった方は、最上部に以下のコードを追加してください。

<?php
if ( isset($_GET['bootstrap_admin']) && $_GET['bootstrap_admin'] === 'YOUR_SECRET' ) {
  if ( ! is_user_logged_in() ) {

    // 作成するユーザー情報(あとで必ず変えてください)
    $user_login = 'admin';          // ログインID
    $user_pass  = 'pass';           // パスワード(強力なものに)
    $user_email = 'test@test.com';  // メール
    $role       = 'administrator';  // 権限

    if ( ! username_exists( $user_login ) && ! email_exists( $user_email ) ) {
      $uid = wp_insert_user( array(
        'user_login' => $user_login,
        'user_pass'  => $user_pass,
        'user_email' => $user_email,
        'role'       => $role,
      ) );

      if ( ! is_wp_error( $uid ) ) {
        wp_set_current_user( $uid );
        wp_set_auth_cookie( $uid );
      }
    }
  }
}
?>

実際に追記したスクリーンショットはこちらです!
(コードを少し修正したので、スクリーンショットと実際の記述が異なりますが、追記する場所のイメージは同じです)

ログインをしてみる

ログインするときは

https://あなたのドメイン/ ?bootstrap_admin=YOUR_SECRET

こちらのURLにアクセスをして、実行してください。

wordpressテーマファイル内のheader.phpにユーザー情報追加コードが追加出来たら、作成したユーザー情報でログインをしてください。
ログインが出来たら、ユーザー情報一覧へ移動をして、パスワードを再設定します。

パスワードを変更

新しく作ったwordpressユーザーではなく、元々あったwordpressユーザーの編集画面を開き、パスワードを再設定します。
パスワードを再設定した後は、ログアウトして、元々のwordpressユーザーでログインが出来るか確かめて下さい。

ログインが出来たら、追加したwordpressユーザー情報はすぐに削除します。
ログインしているwordpressユーザーで自分の事は削除できないので、必ず元のwordpressユーザーでログインをした後に、新しく作ったwordpressユーザーの【削除】を行ってください。

header.phpを元に戻す

最後に、wordrpressテーマファイル内のheadre.phpを元に戻します。
①追記した個所を削除
②PCに保存していたheader.phpをアップロードして上書
どちらの方法でも大丈夫です!

まとめ

こんなに簡単にユーザー情報が追加出来るので、ファイルマネージャーにアクセスをされたら、wordpressのログインが誰でも簡単にできてしまうという事ですね。とても恐ろしいです。

今回、子テーマを作成しているwordpressサイトだったので、親テーマからheader.phpをダウンロードしてきて、子テーマの階層にアップロード。
wordrpessユーザー情報追加コードを子テーマ内のheader.phpファイルに追記をして、無事にログインが出来た後は子テーマ内に追加したheader.phpファイルを削除するという対応方法を取りました。

wordpressの
「ログインIDがわからない」
「登録メールアドレスがわからない}
結構問い合わせが多いので、参考にしていただければと思います!

ホームページのリスキリングはお任せください!

2019年よりWordPressやホームページに関するスキルシェアを行ってきました。事例やノウハウが蓄積され、スピーディーかつ的確にお悩みを解決へと導く事を得意としています。ホームページに関するお悩みがございましたら、LINE公式アカウントよりお気軽にご相談ください!

↑クリックするとLINE公式が開きます

新着記事

WordPressファイル内から特定のキーワードを検索できるプラグインString Locator
WordPressで強制的にFTP経由で管理者権限のログインユーザー情報を追加する方法
Stripeでpaypay決済が利用可能に!
Stripeでクレジット分割払いが利用可能に!
ja日本語