web-dev-qa-db-ja.com

元のユーザーをマルチサイトで削除できないのはなぜですか?手動削除のためのオプション

それで、私はマルチサイトインストールのためにオリジナルのユーザーを削除しようとしていました。スーパー管理者権限を削除し、別のユーザーをネットワーク管理者に設定した後、ネットワークユーザー管理者から削除ボタンを押すだけでページが更新されることに気付きました。

それから私は各ユーザーの一般設定で管理者ユーザーとしてこのユーザーを削除することを進めました。私が削除しようとしたときにまだちょうどリフレッシュ。

これが原因でWordpressのコードを詳しく調べ、WPが意図したとおりに動作していること、そしてID = 1を使用してユーザーを削除することをプログラム的に禁止していることがわかりました。

users.php の30行目には以下の条件があります。

if ( $id != '0' && $id != '1' ) {

削除コードは、このユーザーに対しては実行されません。私はこれを回避する方法を見つけることができますが、これがコードに焼き付けられているのを見ると私はそれについて二度考えています。

だから私の質問は2つあります。

  1. この制限がハードコードされているのはなぜですか?他のユーザーがすべてを実行するための十分な権限を持っている場合、このユーザーが姿を消した場合に予期せぬ結果が生じることはありますか?
  2. これを回避するための私の最善の戦略は何ですか?私の最初の考えはuserusermetaテーブルからそのユーザーの行を削除することだけです。しかし、通常のWPユーザー削除プロセスが確実に完了するように、ユーザーIDを変更することもできます。それとも他に選択肢があるのでしょうか。
2
dave

ユーザーを削除しないで、単にusersテーブルのemail、username(オプション)、passwordを変更してください。 usersテーブルのpasswordフィールドに MD5文字列 を挿入することができ、WordPressは最初にログインしたときにより安全な形式に変換してハッシュします。

1
mrben522