WordPressで20万件以上のダミーデータを高速に作成する開発用プラグインを作りました

,

  1. Staff Blog
  2. WordPress
  3. 制作・運用ノウハウ
  4. WordPressで20万件以上のダミーデータを高速に作成する開発用プラグインを作りました

アドベントカレンダー参加中!

これは Vektor WordPress Solutions Advent Calendar 2024 12月9日の記事です。

ベクトル鉄道部のまるやまです。

ところで、アドベントカレンダーの昨日の記事みました? いや、わたくし公開前にこっそり覗いたんですけどね・・・・・やべえ!やべえもんみちまった・・・・どうしよう・・・・おかあさーーん、おとうさーーん!!

あんな物作ったら当局に狙われるんじゃないかと心配です。

レゴの世界にレゴ職人がいるように、ベクトルには唯一無二の優秀なブロックパターン職人が何人もいるんです。彼女らの織りなすブロックパターンを使えば、お洒落なレイアウトがコピペでサクサク作れます。

VK パターンライブラリ | コピペで使えるWordPress のブロックパターンライブラリ

WordPress のブロックエディタで使えるパターンを公開しています。あらかじめデザインされたパターンをコピー&ペーストすることで、見た目そのままご自分のサイトで使っていただくことができます。

これを使い始めたら、こんなサクサクできんの?! ってびっくりしますよ。・・・そんなことを今から3時間ほど語りたいのですが、それは今度にして、本題に移ります。

大量のデータが必要になることがあった

VK Blocks Proでは「投稿リスト」ブロックといった、最新の投稿内容を表示する便利なブロックを提供しています。

ちょっと前の話ですが、ユーザーの方から25万件データがあると表示に時間がかかるといった報告があり、社内で実際に25万件データを投入して試すことになりました。

WP Dummy Content Generatorプラグイン

こんなプラグインがあるんですね。ただ、一度に作成できる記事数がMax500件で、作成速度も決して速いとはいえないです。大量のデータをつくるというより、リアリティのある精巧なダミーデータを作ってくれるっていう感じですね。(ただし英語) これはこれでとても便利ですが今回の用途に合いませんでした。

wpコマンドで簡単にできると思いきや

$ wp post generate --count=250000 --post_status=publish --post_author=4

WP-CLIがインストールされていれば、WordPressの設置してあるディレクトリでこのコマンドを叩けば、すぐにインストールしてくれます。25万件でもいけそうな雰囲気!

しかし、実行してみると残り時間1時間という表示が!
1時間ぐらい待つのは全然良いのですが、こういう時にさくっと高速にダミーデータが作れると良いなと思いました。またコンテンツも適当な文章がランダムにはいると良いし、ランダムにカテゴリーの紐づけもしたい・・・・。それをいちいち設定しながらやるのは大変。

ええい、ならばつくってしまえ!

高速に20万件のダミーデータを作るプラグインを作る

GitHub – vektor-inc/vk-dummy-data: ダミーデータを大量につくるプラグインです。

ダミーデータを大量につくるプラグインです。. Contribute to vektor-inc/vk-dummy-data development by creating an account on GitHub.

ベクトルはテーマやプラグインを提供している企業ですので、こうした大量のデータを投入してテストすることは今後もあるだろうということで、こうしたプラグインを作りました。

  • 2分程度で20万件のダミーデータを作成できる(私のMacbook M1 Proでの速さ)
  • カスタム投稿タイプ2個、各投稿タイプにカスタムタクソノミー10個を作り、記事を適当なタームにランダムで振り分ける。
  • 単語リストを使って、ランダムな内容で本文も作成する。
  • 投稿日付も各投稿でずらす。(10年間の秒数を投稿数で割って設定しています)

こうした特徴をもっています。

ちなみに、SQLのINSERT文を使って直接DBに書き込んで高速化しています。

このプラグインを公開します。ただし、ノンサポート、自己責任でご利用ください。くれぐれも本番環境ではなく、開発環境でお試しください。

使い方

プラグインディレクトリ (wp-content/plugins/)に放り込んで、プラグインを有効化するだけです。pluginsディレクトリに vk-dummy-data.php を置いても良いですが、GithubのレポジトリからZIPダウンロードして、それをプラグイン画面でファイルからインストールするのが楽です。

そうすると以下のようにメニューに「VK Dummy Data」「Custom Post Type 1」「Custom Post Type 2」ができます。

「VK Dummy Data」を選び、「作成する記事数」に作成したいダミーデータ数を入れてください。ただし、2つの投稿タイプそれぞれにここで指定した数のダミーデータを作りますので、実際にはここで指定した2倍のデータを作成することに注意してください。全体で25万件作成するのであれば、125000を指定します。

バッチサイズは一度にDBに書き込む数です。「ダミーデータ数>=バッチサイズ」になるように設定してください。10000以上のデータを作成したい場合はバッチサイズは10000程度で良いと思いますが、スペックの遅いマシンやマシンに負荷をかけたくない場合は小さい数字にしてください。20000にすると私の環境ではエラーになりました。

「ダミーデータ作成」を押すと、処理が始まり、一番下に処理状況が表示されます。

「All data has been inserted.」と表示されれば処理完了です。ちなみに私のM1 ProのMacbookで25万件を100秒ほどで投稿することができました。

「Custom Post Type 1」「Custom Post Type 2」をチェックしてみましょう。

こんな感じで投稿されます
記事ごとにランダムに生成されたダミーの文章で投稿します。
カスタムタクソノミーにもランダムに紐づけしてくれます

いろいろと検証が終わって、データを全部消したい時は「ダミーデータ削除」を押します。ダミー登録した内容を全部後片付けしてクリーンナップします。(ただしPost IDはカウントアップされたままです)削除の時は途中経過はでずに「Processing…」としか表示されません(手抜き)。「Deleted dummy data.」と表示されれば完了です。私のMacbookで25万件を50秒ほどで削除できました。

ご自由にお使いください

当社の内部の検証用として作ったものですが、公開しますので、自由にお使いください。何度も書きますが・・・

ノンサポート、自己責任でご利用ください。
くれぐれも本番環境ではなく、開発環境でお試しください。

プルリクは大歓迎です!

では良いクリスマスをお過ごしください。

この記事を書いた人

Taichi Maruyama
Taichi Maruyama
2021年3月からベクトルのお手伝いをしているレガシーエンジニア。最近const覚えました。

その裏で、BREADFISHというキリスト教会専門のウェブ制作事業を密かに展開しています。
フルサイト編集に対応したブロックテーマ X-T9

フルサイト編集対応ブロックテーマ

WordPress テーマ X-T9 は、WordPress 5.9 から実装されたフルサイト編集機能に対応した「ブロックテーマ」と呼ばれる新しい形式のテーマです。
ヘッダーやフッターなど、今までのテーマではカスタマイズが難しかったエリアもノーコードで簡単・柔軟にカスタマイズする事ができます。

パターンを使って

よりクオリティの高いサイトに

パターンとは、WordPressのブロックを組み合わせて作ったデザインテンプレートのようなもの。プロのデザイナーが制作したパターンを300以上公開中!コピペしながら高品質なサイトを簡単に作れます。

VK AB Testing は、ABテストを実施するための WordPress 用プラグインです。ブロックエディターでテストパターンを自由に作成でき、ランダム表示とクリック計測が可能です。Webサイトや広告などの施策の改善にぜひご活用ください。


このデモサイトは Vektor,Inc. のテーマとプラグインで構築されています。ご購入や詳細情報は下記のリンクもご参考ください。

PAGE TOP