Transcript
Page 1: WordPress as a CMS: Tips and Tricks from eMusic

eMusic WordPress NYC

Tuesday, March 19, 13

Page 2: WordPress as a CMS: Tips and Tricks from eMusic

Scott Taylor@wonderboymusichttp://scotty-t.com

Tuesday, March 19, 13

Page 3: WordPress as a CMS: Tips and Tricks from eMusic

eMusic Architecture• Linux (CentOS) / AWS (ELB, EC2, S3)

• PHP 5.3 / Apache / MySQL 5.5 (InnoDB)

• PHP Extensions: cURL / Memcached / APC

• WP Plugins: Memcached Redux / Batcache / HyperDB

• Custom scaling: Cloud / Minify

• External Java Web Services

• GravityForms for /support/ sub-site

• bbPress for Message Boards (soon!)

• BuddyPress component architecture for profiles / account (soon!)

Tuesday, March 19, 13

Page 4: WordPress as a CMS: Tips and Tricks from eMusic

Tuesday, March 19, 13

Page 5: WordPress as a CMS: Tips and Tricks from eMusic

• “Home” is home.phpwww.emusic.com/

• “Artist” is page-artist.php + rewriteswww.emusic.com/artist/the-weeknd/13522347/

• “Album” is page-album.php + rewriteswww.emusic.com/album/the-weeknd/trilogy/13692332/

• “Genre” is taxonomy-genre.phpwww.emusic.com/music-genres/alternative-punk/

• “Search” is rewrite + ?s=search+termwww.emusic.com/search/music/?s=the+weeknd

• “Browse” is page-browse.php + REWRITESwww.emusic.com/browse/album/hip-hop-r-b/artist:13522347/editors-pick/new:year/

Pages

Tuesday, March 19, 13

Page 6: WordPress as a CMS: Tips and Tricks from eMusic

Search + Browse

Built on top of Elastic Search

Combination of modified WordPress search and multiple queries to Elastic Search

Tuesday, March 19, 13

Page 7: WordPress as a CMS: Tips and Tricks from eMusic

Artist

Tuesday, March 19, 13

Page 8: WordPress as a CMS: Tips and Tricks from eMusic

Album

Tuesday, March 19, 13

Page 9: WordPress as a CMS: Tips and Tricks from eMusic

Genre

Tuesday, March 19, 13

Page 10: WordPress as a CMS: Tips and Tricks from eMusic

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

Page 11: WordPress as a CMS: Tips and Tricks from eMusic

Stage

Actor

New and Noteworthy17 Dots

Feature Pack

Double Wide

House AdRecommendations Service

Catalog Service

Twitter feed Coming Soon

HOMEPAGE

Tuesday, March 19, 13

Page 12: WordPress as a CMS: Tips and Tricks from eMusic

Editorial• Features, Reviews, Interviews

• Sales

• Merch Modules

• Archives

Tuesday, March 19, 13

Page 13: WordPress as a CMS: Tips and Tricks from eMusic

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

Page 14: WordPress as a CMS: Tips and Tricks from eMusic

Merchandising

Region-specific, Genre-specific

Double-wide

New and Noteworthy

Tuesday, March 19, 13

Page 15: WordPress as a CMS: Tips and Tricks from eMusic

Merchandising

Region-specific, target/page-specific, genre-specific

Stage

Actor

Tuesday, March 19, 13

Page 16: WordPress as a CMS: Tips and Tricks from eMusic

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

Page 17: WordPress as a CMS: Tips and Tricks from eMusic

Creative + Taxonomies

Tuesday, March 19, 13

Page 18: WordPress as a CMS: Tips and Tricks from eMusic

Strategies + Rules

Tuesday, March 19, 13

Page 19: WordPress as a CMS: Tips and Tricks from eMusic

House Ad

House Ad

House Ad

Regionalized

Targeted

URL parsed

Cookie parsed

<div class="house-ad-target" data-target="non-member-stage"></div>

Tuesday, March 19, 13

Page 20: WordPress as a CMS: Tips and Tricks from eMusic

Web Services

• Data over HTTP

• All return JSON

• REST

• Security / Authentication

• All Catalog Data comes from services

Tuesday, March 19, 13

Page 21: WordPress as a CMS: Tips and Tricks from eMusic

AJAX / Persistent Player

• Primary use of Backbone

• history.pushState, no full page reload

• Local storage for player history

Tuesday, March 19, 13

Page 22: WordPress as a CMS: Tips and Tricks from eMusic

17 Dots / Post Formats

Tuesday, March 19, 13

Page 23: WordPress as a CMS: Tips and Tricks from eMusic

Dashboard

Tuesday, March 19, 13

Page 24: WordPress as a CMS: Tips and Tricks from eMusic

Link Images to External IDs

Tuesday, March 19, 13

Page 25: WordPress as a CMS: Tips and Tricks from eMusic

Schedule Catalog Items

Tuesday, March 19, 13

Page 26: WordPress as a CMS: Tips and Tricks from eMusic

Front End Technologies• Backbone / Underscore / NodeJS

http://backbonejs.org/

OOP JavascriptArrays / CollectionsMinified via Grunt / UglifyLint’d via JSLint / JSHint

• LESS http://lesscss.org/

OOP CSSMinified via YUI Compressor

Tuesday, March 19, 13

Page 27: WordPress as a CMS: Tips and Tricks from eMusic

Tuesday, March 19, 13

Page 28: WordPress as a CMS: Tips and Tricks from eMusic

Thank You Questions?

Tuesday, March 19, 13


Top Related