eMusic started transitioning to WordPress as their web front-end in 2011. Like most enterprise sites, they had outgrown their closed-source CMS and were looking for ways to speed up development and empower their editorial team. They decided to convert their Java back-end to Java-based Web Services, and their front-end to PHP, using WordPress for publishing, merchandising, web configuration, and service consumption. The site now boasts one of the best implementations of "WordPress as a CMS" and scales to many millions of page views a month.
Scott Taylor led eMusic through this transition. eMusic is music discovery service, previously subscription-only, which enables its subscribers to discover and purchase music at a discounted rate. Its recently-launched "A la Carte" service allows visitors to download albums and track without a subscription. eMusic has been around since 1998 and was one of the first services to champion the MP3 format and DRM-free downloading.
Scott's presentation will be a walk-through/case-study of eMusic's WordPress implementation, and he'll also share some tricks of the trade for managing many custom post types, regionalizing content, and easily integrating with services like AWS.
5. Pages
• “Home” is home.php
www.emusic.com/
• “Artist” is page-artist.php + rewrites
www.emusic.com/artist/the-weeknd/13522347/
• “Album” is page-album.php + rewrites
www.emusic.com/album/the-weeknd/trilogy/13692332/
• “Genre” is taxonomy-genre.php
www.emusic.com/music-genres/alternative-punk/
• “Search” is rewrite + ?s=search+term
www.emusic.com/search/music/?s=the+weeknd
• “Browse” is page-browse.php + REWRITES
www.emusic.com/browse/album/hip-hop-r-b/artist:13522347/editors-pick/new:year/
Tuesday, March 19, 13
6. Search + Browse
Combination of modified
WordPress search and multiple
queries to Elastic Search
Built on top of
Elastic Search
Tuesday, March 19, 13
10. Custom Post Types
• We have 54 of them!
• “Editorial Types” - type of article, different
types of displayed data
• Merchandising modules
• House Ads
• Configs
• Homepage contains many
Tuesday, March 19, 13
11. HOMEPAGE
Stage
Double Wide
Actor
Feature Pack
New and Noteworthy Recommendations Service
17 Dots House Ad
Catalog Ser vice
Twitter feed Coming Soon
Tuesday, March 19, 13
13. Taxonomies
• `region` = regionalizes content
• `editorial_target` = where it can show up
• `genre` = which genre it is targeting
• `tag` = what topic it is related to
• `category` = used for grouping post_types
Tuesday, March 19, 13
14. Merchandising
Double-wide
New and Noteworthy
Region-specific, Genre-specific
Tuesday, March 19, 13
15. Merchandising
Stage
Actor
Region-specific, target/page-specific, genre-specific
Tuesday, March 19, 13
16. House Ads
• Homegrown replacement for DART
• Probability strategies / self-optimizing
• Click-tracking
• URL path / Query string / Cookie
• Test multiple pieces of creative
Tuesday, March 19, 13
20. Web Services
• Data over HTTP
• All return JSON
• REST
• Security / Authentication
• All Catalog Data comes from services
Tuesday, March 19, 13
21. AJAX / Persistent Player
• Primary use of Backbone
• history.pushState, no full page reload
• Local storage for player history
Tuesday, March 19, 13