3

データベースの wp_posts テーブルに現在約 40,000 行のデータを保持している「カスタム投稿タイプ」を使用して、wordpress/mysql をセットアップしました。特定のカスタム投稿タイプのすべての行を一度に削除する SQL クエリを作成しようとしていますが、構文エラーが発生したと表示され続けます。私が使用しているコードは以下のとおりです。単純な場合は申し訳ありませんが、SQL は私にとって異質であり、フォーラムで何かを見つけるのに苦労しています。

DELETE FROM `wp_posts`
WHERE  `post_type` =  'prefix-numberplates'
LIMIT 0 , 3000

wp_posts と post_type の周りに ` がありますが、ここでスタイルを設定することはできません。どんな助けでも大歓迎です。

4

6 に答える 6

7

解決済み -

DELETE FROM `wp_posts`
WHERE  `post_type` =  'prefix-numberplates'

うまくいきました - 底部を取り出しましたが、問題ありませんでした。

于 2012-08-23T06:21:28.850 に答える
5

以下は、posts、postmeta、および term_relationships テーブルから削除します。

DELETE p,tr,pm
    FROM wp_posts p
    LEFT JOIN wp_term_relationships tr
        ON (p.ID = tr.object_id)
    LEFT JOIN wp_postmeta pm
        ON (p.ID = pm.post_id)
    WHERE p.post_type = 'post_type_name';

「post_type_name」を削除したい cpt に変更するだけです。また、必要に応じてテーブル名のプレフィックスを変更します。

于 2017-12-14T22:13:36.893 に答える
1

この方法で正しいテーブルを確実に取得できます - $wpdb が最もよく知っています :)

// delete CPT posts ##
global $wpdb;

$posts_table = $wpdb->posts;

$query = "
  DELETE FROM {$posts_table}
  WHERE post_type = 'post_type_name' 
";

$wpdb->query($query);
于 2013-12-24T16:23:32.087 に答える
0
delete p,m from wp_posts p left join wp_postmeta m on p.ID = m.post_id where p.post_type = "my_custom_post_type"
于 2017-12-06T20:39:41.680 に答える
-1

$wpdb クラスを使用してみてください。

$query = "
DELETE FROM wp_posts 
WHERE post_type = 'prefix-numberplates' 
LIMIT 0, 3000
";

$wpdb->query($query);
于 2012-07-21T16:08:39.150 に答える