カスタム投稿は、開発途中にやっぱりそれいらない。
となることも少なくありません。 
とはいえ、開発環境ではほとんど問題にならないので、データの残りカスがでても気にしないのですが。。
でも、カスタム投稿を含んだプラグインを提供するとなると話は別です。
 プラグインで用意したカスタム投稿に投稿した後に、そのプラグインをアンインストールしたら、投稿した内容も削除しないといけない場合があります。
そこで。 
WordPressで、カスタム投稿に投稿済みの内容がある場合に、その内容を削除する方法です。
  function delete_posts($postType=null) {
    if (!$postType) {return null;}
    global $wpdb;
    $tn_posts = $wpdb->prefix . 'posts';
    $tn_postmeta = $wpdb->prefix . 'postmeta';
    $select = "DELETE FROM $tn_posts " ;
    $select .= "WHERE post_type='$postType' ;";
    $results = $wpdb->query( $select );
    return $results;
  }
  function delete_postmeta($postType=null) {
    if (!$postType) {return null;}
    global $wpdb;
    $tn_posts = $wpdb->prefix . 'posts';
    $tn_postmeta = $wpdb->prefix . 'postmeta';
    $select = "DELETE pm FROM $tn_postmeta pm ";
    $select .= "LEFT JOIN $tn_posts p ON p.ID=pm.post_id ";
    $select .= "WHERE p.post_type='$postType' ;";
    $results = $wpdb->query( $select );
    return $results;
  }
delete_postmeta('my_posttype');
delete_posts('my_posttype');
delete_postmeta()でカスタムフィールドを削除してから、 delete_posts()でカスタム投稿の投稿データを削除しています。 
my_posttypeにはカスタム投稿のpost typeを入れるわけです。