Hatena::ブログ(Diary)

130単位

2009-11-22

WordPress プログラムからテストデータ作成

テストデータを作りたいけどSQL作成が面倒に感じて、別の方法でできないかと調べた際のメモ。

どうやらwp-config.phpさえ読み込めばいろいろできるみたいです。WP-PostRatingsプラグインを参考にしました。

以下、ユーザーごとに1記事作成するサンプルです。

<?php
//WordPressのロード
//このファイルがwp-content/plugins/example/tests/test.phpにあるとする
$wp_root = '../../../..';
if (file_exists($wp_root.'/wp-load.php')) {
    require_once($wp_root.'/wp-load.php');
} else {
    require_once($wp_root.'/wp-config.php');
}

//記事投稿用関数群読み込み
require_once(ABSPATH . 'wp-admin/includes/post.php');

//既存ユーザーID取得
$user_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->users}");

//記事の雛形作成
$post = get_default_post_to_edit();

//ユーザーごとに1記事登録(※権限は未チェック)
$i = 1;
foreach ($user_ids as $user_id) {
    $post->post_author = $user_id;
    $post->post_title = 'testentry' . $i;
    $post->post_content = 'testcontent' . $i;
    $post->post_status = 'publish';
    wp_update_post($post);

    $i++;
}

//記事が投稿されたか確認
$posts = get_posts();
echo '<pre>' . print_r($posts, true) . '</pre>';

あとはこのファイルのURLに直接アクセスすればいいはずです。

大量のテストデータが必要なときなど、有用かもしれません。また、簡単な単体テストを書くのにも使えるのではないかと思います。


関連記事:
WordPress SQLのエラー出力を自動化 - 130単位

*1関数定義しなければglobal書かなくてもそのまま使える

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/deeeki/20091122/wordpress_test