株式会社オートプロジェクト

Columnコラム
  • TOP
  • コラム一覧
  • WordPressの開発時に大量のデータを削除して環境を作りたい場合
2023年11月9日
WordPressの開発時に大量のデータを削除して環境を作りたい場合

WordPressの開発環境を構築した時に、本番サーバーからデータベースをダンプしてインポートしても、大量のデータがあると開発環境の動きが非常に遅くなります。

そこで、不要なデータを削除するときのプログラムを紹介します。

このプログラムは、「投稿」「ユーザーデータ」「WooCommerceの注文データ」を削除する場合になります。

間違って本番環境で実行してしまうと大変なことになるので、開発環境でのみ実行してください。


<?php 
include_once( dirname(__FILE__) . '/../../../wp-load.php' ); 
include_once(ABSPATH.'wp-admin/includes/user.php'); 

//userを削除したい時 
$users = get_users( array( 'fields' => array( 'ID' ) ) );
foreach($users as $user){
    $user_id = $user->ID;
    if($user_id < 10){continue;}
 wp_delete_user($user_id);
} 

//2023年1月1日以前のpostを削除したい時 
$array = get_posts([ 'posts_per_page' => -1,
    'post_type' => 'post',
    'fields' => 'ids',
    'post_status' => 'any',
	'date_query' => array(
		array(
			'before' => array(
				'year' => 2023,
				'month' => 1,
				'day' => 1,
			),
			'inclusive' => true,
		),
	),    
]);
foreach($array as $id){
    wp_delete_post($id,true);
}



//2023年1月1日以前の画像を削除したい時
$array = get_posts([
    'posts_per_page' => -1,
    'post_type' => 'attachment',
    'fields' => 'ids',
    'post_status' => 'any',
	'date_query' => array(
		array(
			'before' => array(
				'year' => 2023,
				'month' => 1,
				'day' => 1,
			),
			'inclusive' => true,
		),
	),    
]);
foreach($array as $id){
    wp_delete_post($id,true);
}


//woocommerceの注文情報を削除したい時
$array = get_posts([
    'posts_per_page' => -1,
    'post_type' => 'shop_order',
    'fields' => 'ids',
    'post_status' => 'any',
]);
foreach($array as $id){
    wp_delete_post($id,true);
}

このプログラムを書いたphpファイルを用意してテーマフォルダのトップディレクトリに配置し、あとはそれをコマンドラインから実行します。

  1. PHP