Sarathlal N

Dynamically create file in WordPress upload directory & make it as post attachment

Today, I need to create a text file in WordPress upload directory with dynamic content. Also need to set it as an attachment to a WordPress post.

Here is the quick function for this pourpose.

function create_attachement($data, $post_id){
    
    $file_name = 'your_file_name.txt';
    $upload = wp_upload_bits($file_name, null, $data);
    if(!$upload['error']){
	    $wp_filetype = wp_check_filetype($file_name, null );
	    $attachment = array(
		    'post_mime_type' => $wp_filetype['type'],
		    'post_title' => preg_replace('/\.[^.]+$/', '', $file_name),
		    'post_content' => '',
		    'post_status' => 'private'
	    );
	    $attachment_id = wp_insert_attachment($attachment, $upload['file'], $post_id);
	    if($attachment_id){
		    //return $upload['url'];
		    return $attachment_id;
	    }

	    return false;
    }
    return false;
    
}

Recent Posts

  1. Automating Release Generation with GitHub Actions
  2. WP CLI Commands to Bulk Delete Entries in WordPress Database
  3. Split a Single CSV File into Multiple Files Using the Split Command - Bash
  4. Migrating code repo from BitBucket to GitHub
  5. Streamlining Development - Our Journey with Git, Bitbucket, and Jira

Your Questions / Comments

If you found this article interesting, found errors, or just want to discuss about it, please get in touch.