wp_delete_post()


WordPress関数wp_delete_post()は、特定の投稿を削除するために使用されます。この関数は、投稿をゴミ箱に移動するか、完全に削除するオプションを提供します。

構文

wp_delete_post( int $post_id, bool $force_delete = false );

引数の説明:

  • $post_id (int) — 削除対象の投稿のID。
  • $force_delete (bool)trueの場合、投稿はゴミ箱を経由せず完全に削除されます。デフォルトはfalse

例1: 投稿をゴミ箱に移動する

以下のコードは、指定した投稿IDの投稿をゴミ箱に移動します。

wp_delete_post( get_the_ID() );

例2: 投稿を完全に削除する

以下のコードは、投稿をゴミ箱を経由せず完全に削除します。

wp_delete_post( get_the_ID(), true );

例3: 投稿IDを取得して削除する

以下のコードは、指定した条件に一致する投稿を削除します。

$post_id = wp_insert_post( array(
    'post_title' => 'テスト投稿',
    'post_content' => '内容',
    'post_status' => 'publish',
) );
wp_delete_post( $post_id );

例4: 条件に基づいて投稿を削除する

以下のコードは、公開状態の投稿を条件に削除します。

$query = new WP_Query( array( 'post_status' => 'publish' ) );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        wp_delete_post( get_the_ID(), true );
    }
}
wp_reset_postdata();

例5: 投稿タイプを指定して削除する

以下のコードは、カスタム投稿タイプのすべての投稿を削除します。

$query = new WP_Query( array( 'post_type' => 'custom_type' ) );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        wp_delete_post( get_the_ID() );
    }
}
wp_reset_postdata();

注意事項:

  • 削除操作は元に戻せないため、十分に注意してください。
  • $force_deletetrueに設定すると、ゴミ箱を経由せずに投稿が削除されます。
  • カスタム投稿タイプの投稿を削除する際は、投稿タイプを指定することをおすすめします。

関連機能: