38 lines
988 B
PHP
38 lines
988 B
PHP
<?php
|
|
|
|
class WP_UnitTest_Factory_For_Attachment extends WP_UnitTest_Factory_For_Post {
|
|
|
|
function create_object( $file, $parent = 0, $args = array() ) {
|
|
return wp_insert_attachment( $args, $file, $parent );
|
|
}
|
|
|
|
function create_upload_object( $file, $parent = 0 ) {
|
|
$contents = file_get_contents($file);
|
|
$upload = wp_upload_bits(basename($file), null, $contents);
|
|
|
|
$type = '';
|
|
if ( ! empty($upload['type']) ) {
|
|
$type = $upload['type'];
|
|
} else {
|
|
$mime = wp_check_filetype( $upload['file'] );
|
|
if ($mime)
|
|
$type = $mime['type'];
|
|
}
|
|
|
|
$attachment = array(
|
|
'post_title' => basename( $upload['file'] ),
|
|
'post_content' => '',
|
|
'post_type' => 'attachment',
|
|
'post_parent' => $parent,
|
|
'post_mime_type' => $type,
|
|
'guid' => $upload[ 'url' ],
|
|
);
|
|
|
|
// Save the data
|
|
$id = wp_insert_attachment( $attachment, $upload[ 'file' ], $parent );
|
|
wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $upload['file'] ) );
|
|
|
|
return $id;
|
|
}
|
|
}
|