Upload Files to Wordpress Media Library Using PHP
template-example.php
<form method="post" action="" enctype="multipart/form-data"> <p> <input type="file" name="myfile" id="myfile" /> </p> <p><input type="submit" value="Uploaden" id="submit" name="submit" class="submit" /></p> </form>
// https://cube3x.com/upload-files-to-wordpress-media-library-using-php/
if(@$_FILES['myfile']['size']){
if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
if ( ! function_exists( 'wp_generate_attachment_metadata' ) ) require_once( ABSPATH . 'wp-admin/includes/image.php' );
$uploadedfile = $_FILES['myfile'];
if($uploadedfile){
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile ) {
$post = array(
'post_title' => time(),
'post_content' => '',
'post_status' => 'publish',
'post_type' => 'card'
);
$upload_post_id = wp_insert_post($post);
do_action('wp_insert_post', 'wp_insert_post');
$wp_filetype = $movefile['type'];
$filename = $movefile['file'];
$wp_upload_dir = wp_upload_dir();
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . basename( $filename ),
'post_mime_type' => $wp_filetype,
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename, $upload_post_id);
$attach_data = wp_generate_attachment_metadata($attach_id, $filename);
//dump($attach_data); die;
wp_update_attachment_metadata($attach_id, $attach_data);
set_post_thumbnail( $upload_post_id, $attach_id);
if($attach_id) header("Location: ".get_permalink(PAGE_ID_EXAMPLE));
}
}
}