wp_delete_user() の使い方|説明・引数・注意点

説明

wp_delete_user() は、ユーザーを削除する関数です。投稿の引き継ぎ先を指定できます。

基本構文

wp_delete_user( int $id, int|null $reassign = null ): bool

引数

  • $id:削除するユーザーID
  • $reassign:投稿やリンクを引き継ぐユーザーID

戻り値

削除できたら true。

使い方(サンプル)

wp_delete_user( 5, 1 );

注意点

  • reassign を指定しないと、そのユーザーの投稿も削除されます。
  • 管理画面側の関数のため、wp-admin/includes/user.php の読み込みが必要な場面があります。

実務での使いどころ

  • ユーザーを、プログラムから削除するとき。
  • 退会処理で、ユーザーのデータを削除するとき。

よくあるミスと対処

  • $reassign を指定せず、そのユーザーの投稿が、削除される(投稿・固定ページはゴミ箱へ、カスタム投稿タイプは完全に削除)。投稿を残すときは、引き継ぐユーザーのIDを指定する。
  • 管理画面の外(フロントやcronなど)で呼ぶとき、この関数が定義されたファイル(wp-admin/includes/user.php)を、読み込んでいない。未定義の関数になる。
  • 権限の確認なしに、削除している。
  • 削除は元に戻せない。実行前に、バックアップを取る。

NG例

wp_delete_user( $user_id ); // そのユーザーの投稿も、すべて削除される

OK例

if ( current_user_can( 'delete_users' ) ) {
	wp_delete_user( $user_id, $reassign_to_user_id ); // 投稿は、引き継ぎ先のユーザーへ移る
}

使い分け早見表

引数 結果
$reassign を指定しない そのユーザーの投稿(ゴミ箱または完全に削除)や、リンクも、削除される
$reassign に、ユーザーIDを指定 投稿やリンクが、そのユーザーに引き継がれる

関連項目

wp_insert_user()、wp_update_user()、get_userdata()

公式リファレンス:wp_delete_user() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました