なんか簡単にやる方法ないかなーと思ってWordPressコアのユニットテストのソースをのぞいたらあった。
わらけるぐらい簡単。
class Media_Test extends WP_UnitTestCase
{
public function setUp()
{
parent::setUp();
$post_ids = $this->factory->post->create_many( 25 );
foreach ( $post_ids as $post_id ) {
$attachment_id = $this->factory->attachment->create_object( 'image-'.$post_id.'.jpg', $post_id, array(
'post_mime_type' => 'image/jpeg',
'post_type' => 'attachment'
) );
set_post_thumbnail( $post_id, $attachment_id );
}
}
}
以上のようにsetUp()
に書くだけ。
上の例では25件のダミーの記事をcreate_many()
で作って、その戻り値の記事のIDの配列をぶんまわしてcreate_object()
で画像を添付して、set_post_thumbnail()
でアイキャッチ画像に設定しています。
ファイル名はテストとかでわかりやすいようにimage-123.jpg
みたいな感じで記事のIDを数字の部分に放り込みました。
これでアイキャッチ画像をフィードに放り込みたいとかOGPで出したいとかの確認はブラウザでアップロードとかめんどくさいことをしなくてもよくなりました。