WordPressで特定のカテゴリのアイキャッチを全て削除するバッチ処理
WordPressの案件で、今あるアイキャッチ画像を全て削除し、他の画像データ群に置き換える必要が出てきた。
アイキャッチが割り当てられている投稿が10万件近くある為、バッチ処理で行うことに。
備忘録的に残す。というかWordPressのバッチ処理の日本語記事、少なすぎじゃないかなと思うのでこれから残していく。
batch.php
<?php require_once('wp-load.php'); require_once('wp-config.php'); // 特定のカテゴリを選択 $category_id = get_cat_ID('牛脂'); $results = $wpdb->get_results(" SELECT * FROM wp_postmeta WHERE post_id in (SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id = (SELECT term_taxonomy_id FROM wp_term_taxonomy WHERE term_id = $category_id) ) AND meta_key = '_thumbnail_id' "); foreach ($results as $value) { delete_post_meta($value->post_id, '_thumbnail_id'); } ?>
実行方法
これをphp batch.php
といった具合で実行してあげればOK。
副々問い合わせなのでちょっと冗長かな。