説明
$wpdb->delete() は、テーブルから行を削除するメソッドです。
基本構文
$wpdb->delete( string $table, array $where, array|string $where_format = null ): int|false
引数
$table:テーブル名$where:条件$where_format:条件の書式
戻り値
削除した行数。失敗時は false。
使い方(サンプル)
global $wpdb;
$wpdb->delete( $wpdb->prefix . 'my_table', array( 'id' => 1 ), array( '%d' ) );
注意点
- 削除は元に戻せません。実行前にバックアップを取ります。
実務での使いどころ
- 独自のテーブルの、行を削除するとき。
- 条件(
$where)に合う行を、削除するとき。
よくあるミスと対処
$whereが、空や広すぎる条件で、多くの行が、削除される。- 戻り値の
0を、失敗と考える。0は、削除された行が、なかったことを示す。失敗は、false。 - 削除は、元に戻せない。実行前に、バックアップを取る。
NG例
$wpdb->delete( $wpdb->prefix . 'logs', array( 'user_id' => $user_id ) ); // 権限の確認がなく、$user_id が空だと、意図しない行が消える
OK例
if ( current_user_can( 'manage_options' ) && $user_id > 0 ) {
$wpdb->delete( $wpdb->prefix . 'logs', array( 'user_id' => $user_id ), array( '%d' ) );
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 1行を削除 | $wpdb->delete() |
| 1行を追加 | $wpdb->insert() |
| 1行を更新 | $wpdb->update() |
関連項目
$wpdb->insert()、$wpdb->update()
公式リファレンス:wpdb::delete() | Class method | WordPress Developer Resources

コメント