WordPressのポストタグ(post_tag)とカテゴリ(category)をSQLコマンドで削除する

構築・開発WordPress

WordPressのタグは、投稿時に自由に設定できるメリットがあるのですが、運用ルールがないと自由すぎて無駄に増えていってしまいます。
今回、10万件ほどに増えてしまったタグを削除して、ルールに基づいて振り直すという要件がありました。

10万件もとなると管理画面からチマチマと削除していてはいつまで経っても終わりません。
そこで、SQL文で、データベースを直接編集する方法にしました。
WordPressのデータが巨大になりすぎた時とかに使えるSQLコマンドかと思います。

※コマンドを実行する方は、諸々バックアップを行った上で、お試しください。

スポンサーリンク

ポストタグの削除

DELETE `wp_terms`
    FROM `wp_term_taxonomy`
    LEFT JOIN `wp_terms`
    ON wp_term_taxonomy.term_id = wp_terms.term_id
    WHERE wp_term_taxonomy.taxonomy='post_tag';

DELETE `wp_term_relationships`
    FROM `wp_term_taxonomy`
    LEFT JOIN `wp_term_relationships`
    ON wp_term_taxonomy.term_id = wp_term_relationships.term_taxonomy_id
    WHERE wp_term_taxonomy.taxonomy='post_tag';

DELETE FROM `wp_term_taxonomy`
    WHERE wp_term_taxonomy.taxonomy='post_tag';

カテゴリの削除

DELETE `wp_terms`
    FROM `wp_term_taxonomy`
    LEFT JOIN `wp_terms`
    ON wp_term_taxonomy.term_id = wp_terms.term_id
    WHERE wp_term_taxonomy.taxonomy='category';

DELETE `wp_term_relationships`
    FROM `wp_term_taxonomy`
    LEFT JOIN `wp_term_relationships`
    ON wp_term_taxonomy.term_id = wp_term_relationships.term_taxonomy_id
    WHERE wp_term_taxonomy.taxonomy='category';

DELETE FROM `wp_term_taxonomy`
    WHERE wp_term_taxonomy.taxonomy='category';

 

おまけ

不要なカスタムフィールドのデータをSQL文で削除する。

DELETE FROM `wp_postmeta` WHERE `meta_key`="【フィールド名】" OR `meta_key`="_【フィールド名】";

 

カテゴリの説明を纏めてSQL文で挿入する。

UPDATE `wp_term_taxonomy` SET `description`='【説明文】' WHERE term_id = 【ID】;

 

コメント

スポンサーリンク
タイトルとURLをコピーしました