Currently, WordPress has a section called the Media Library, where the user/administrator can upload photos and other visual media. WordPress does not offer much organizing power for the users to organize the photos, and the problem gets worse when there are a lot of photos in the Media Library. Also, there is no convenient way for the user to upload a large number of images in one go, or for the user to include a specific selection of photos into a blog post. For example, if the user has recently participated in an event and wishes to upload some 60 photos taken during the event, he would have to upload the 60 photos one by one, and insert them into the blog post one by one, assuming that he also have other photos in his Media Library.

Therefore, I am proposing to add a “Photo Grouping by Album” function into the WordPress core, which allows the user to do three things: a) maintain a list of albums. Each album has a one-to-many relationship with photos in the Media Library. b) upload .zip files which will be extracted and put into one album. c) add an album to anywhere in a post using a button, or a markup, while each album also has its individual display page.

Firstly, under the ‘Media’ tab, there will be a new section named ‘Albums’. Albums will have a one-to-many relationship to photos in the library, much like the category-post relationship. One photo can be in several albums. The user will be able to create, add details of, modify, and delete albums. Deleting an album will not delete the photos associated with the album, but the user has the option of doing so. The option will offer the power either to delete the photos which are only associated with this album and none other, or to delete the photos which are associated with this album, regardless of whether that photo appears in another album.

Secondly, to allow the user to upload several photos easily, the user will be given the option of uploading a .zip archive which contains the photos, and the WordPress system will extract the archive and associate them with either an existing album, or a new album. The .zip file will be deleted from the server once the extraction is complete.

Thirdly, the user can add an album of images into anywhere in a blog post via the ‘Add Media’ button. The thumbnails of the images in that album will be displayed in a grid, and clicking on each image will trigger a lightbox to popup, and it shows the large version of the photo. Users can also add an album via a markup, e.g. [album name=Spain Trip]. Options include full view photo dimensions, number of photos to show in a row in the grid, etc.

In conclusion, by organizing photos in the Media library of WordPress using albums, and allowing the user to rapidly add, insert into a post, modify and delete a large number of photos, the user experience of WordPress will be enhanced because photo organizing will be less tedious.
Schedule of Deliverables

May 23 – June 15: Work on adding the ‘Album’ Tab, creating the ‘Album’ model and associating it with photos. Finish functionality one.

June 16 – July 13: Work on decompressing code and integrating it to the upload process. Finish functionality two.

July 14 – August 10: Append to post editor functionality three.