説明
wp_delete_term() は、タームを削除する関数です。
基本構文
wp_delete_term( int $term, string $taxonomy, array|string $args = array() ): bool|int|WP_Error
引数
$term:タームID$taxonomy:タクソノミー名$args:default(削除後に付け替えるターム)など
戻り値
成功したら true。既定のカテゴリーなど削除できないものは 0。
使い方(サンプル)
wp_delete_term( 5, 'category' );
注意点
- 既定のカテゴリー(未分類)は削除できません。
- 投稿のカテゴリーが空になる場合は、既定のカテゴリーが自動で付与されます。
実務での使いどころ
- ターム(カテゴリーなど)を、プログラムから削除するとき。
よくあるミスと対処
$taxonomyを指定していない。- デフォルトのカテゴリーを削除しようとしている。削除はできず、
0が返る。 - 削除は元に戻せない。実行前に、バックアップを取る。
- 投稿とタームの関連だけを外したいのに、使っている。その場合は
wp_remove_object_terms()を使う。
NG例
wp_delete_term( $term_id, 'news_cat' ); // 権限の確認がない。元に戻せない
OK例
if ( current_user_can( 'manage_categories' ) ) {
$result = wp_delete_term( $term_id, 'news_cat' );
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| タームそのものを削除 | wp_delete_term() |
| 投稿とタームの関連だけを外す | wp_remove_object_terms() |
| タームを更新する | wp_update_term() |
関連項目
wp_insert_term()、wp_update_term()、wp_remove_object_terms()
公式リファレンス:wp_delete_term() | Function | WordPress Developer Resources

コメント