説明
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

コメント