wordpress building better relationships

51
WordPress: Building Better Relationships Text

Upload: gregory-cornelius

Post on 28-Jan-2015

112 views

Category:

Technology


0 download

DESCRIPTION

For basic content publishing needs, the ease-of-use of WordPress shines. Unfortunately, once a project exceeds 500 pages, using WordPress is much less straightforward. How has Boston University made it work? From a technical standpoint, building relationships between content objects and creating simple to use UIs for managing the relationships is key. Once established, the semantic relationships can be coupled with bits of meta data to construct menus, indexes, facets, filters, and so much more. Using code examples, this talk will highlight essential parts of the WordPress API and demonstrate various techniques used in BU plugins and themes that help us build better large websites.

TRANSCRIPT

Page 1: WordPress Building Better Relationships

WordPress:Building Better Relationships

Text

Page 2: WordPress Building Better Relationships

ordPress @ BU

Page 3: WordPress Building Better Relationships

2007 20122008 2009 2010 2011

141 sites

342 sites

581 sites

136 sites0 sites

636 sites

Page 4: WordPress Building Better Relationships

2007 20122008 2009 2010 2011

Total:

+ 270 In-progress+ 2,323 Blogs= 3,229 Sites

Page 5: WordPress Building Better Relationships

A range of offerings:

1. Fully custom2. Quick setup3. DIY tools

Page 6: WordPress Building Better Relationships
Page 7: WordPress Building Better Relationships
Page 8: WordPress Building Better Relationships
Page 9: WordPress Building Better Relationships
Page 10: WordPress Building Better Relationships
Page 11: WordPress Building Better Relationships
Page 12: WordPress Building Better Relationships
Page 13: WordPress Building Better Relationships

Big sites are hard

Page 14: WordPress Building Better Relationships

Lack of vision

Lack of consistency

Lack of clear accountability

Team dynamics and skill

Inadequate search capabilities

Performance

Complex workflows

Focusing on technology before understanding the problem

Politics

What makes them hard?

Page 15: WordPress Building Better Relationships

content design

site

tools

Page 16: WordPress Building Better Relationships

Main Third-PartyGravity Forms

WP SuperCache

Akismet

Networks for WordPress

Main BU-specificBU Navigation

Access Control List (w/ Single Sign-on)

User Management (w/ Single Sign-on)

Content Banner

Post Details

Advanced Tiny MCE

Site Manager

....

Integratedw/ BU apps BU Calendar

BU Maps

Google Search Appliance

Course Feeds

Training Manager

Emergency Alert

How many plugins does it take?

Page 17: WordPress Building Better Relationships

the magic number seven

*George A. Miller. "The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information". The Psychological Review, 1956, vol. 63, pp. 81!97.

+/- two

Page 18: WordPress Building Better Relationships
Page 19: WordPress Building Better Relationships
Page 20: WordPress Building Better Relationships
Page 21: WordPress Building Better Relationships
Page 22: WordPress Building Better Relationships
Page 23: WordPress Building Better Relationships
Page 24: WordPress Building Better Relationships

Custom Post Types

Page 25: WordPress Building Better Relationships
Page 26: WordPress Building Better Relationships

Benefits Risks• Admin menu w/label

• Separate templates (automatic)

• Separate namespace

• Easy to add metaboxes

• Good performance

• Not supported by all plugins

• More difficult to move

• No XML-RPC support

• No mobile support

• No cross-relationship support built-in

Page 27: WordPress Building Better Relationships

  $supports  =  array(     'title',     'bu-­‐content-­‐banner',     'bu-­‐post-­‐details',     'comments'   );

  $taxonomies  =  array(     'category'   );

  $labels  =  array(     'name'  =>  _x('Close-­‐ups',  'post  type  general  name'),     'singular_name'  =>  _x('Close-­‐ups',  'post  type  singular  name'));

Post type registration

Page 28: WordPress Building Better Relationships

  $args  =  array(     'labels'  =>  $labels,     'description'  =>  '',     'publicly_queryable'  =>  true,     'exclude_from_search'  =>  false,     'capability_type'  =>  'post',     'capabilities'  =>  array(),     'map_meta_cap'  =>  null,     'hierarchical'  =>  false,     'rewrite'  =>  array('slug'  =>  'closeup'),     'has_archive'  =>  false,     'query_var'  =>  true,     'supports'  =>  array(),     'taxonomies'  =>  $taxonomies,     'show_ui'  =>  true,     'menu_position'  =>  null,     'menu_icon'  =>  null,     'permalink_epmask'  =>  EP_PERMALINK,     'can_export'  =>  true,     'show_in_nav_menus'  =>  false,     'show_in_menu'  =>  true,     'supports'  =>  $supports   );   register_post_type('closeup',  $args);

Page 29: WordPress Building Better Relationships

Consistency vs. Freedom

Page 30: WordPress Building Better Relationships

man + machine

Page 31: WordPress Building Better Relationships

Curation

Page 32: WordPress Building Better Relationships
Page 33: WordPress Building Better Relationships
Page 34: WordPress Building Better Relationships
Page 35: WordPress Building Better Relationships

Demo + Code

Code available at https://github.com/gcorne/featured-posts

Page 36: WordPress Building Better Relationships

Discovery+ little surprises

Page 37: WordPress Building Better Relationships
Page 38: WordPress Building Better Relationships

Keyword Analysis + Relevance Algorithm

Yet Another Related Posts Plugin(by) @mitcho

Page 39: WordPress Building Better Relationships

meaningful

clear

logicalsubstantial

cohesive

Semantic value

Page 40: WordPress Building Better Relationships

Classification +Taxonomy

Page 41: WordPress Building Better Relationships

Taxonomy registration

$args  =  array(   'hierarchical'  =>  false,     'show_ui'  =>  true,     'labels'  =>  array(     'name'  =>  'Media  Types',       'singular_name',  'Media  Type'     ),   'query_var'  =>  true,     'rewrite'  =>  true,);

register_taxonomy('media-­‐type',  array('post'),  $args);

Page 42: WordPress Building Better Relationships

$tax_q  =  array(          'taxonomy'  =>  'media-­‐type',          'field'  =>  'id',          'terms'  =>  $term_id));

$q_args  =  array('post_type'  =>  'any','post_status'  =>  'publish','tax_query'  =>  $tax_q

);

$custom_q  =  WP_Query($q_args);

while($custom_q-­‐>has_posts())  {$custom_q-­‐>the_post();//  render  post  list  using  template  tags//  

}

Simple taxonomy query

Page 43: WordPress Building Better Relationships

list of terms list of posts in a term specific post

taxonomy usage: standard

Page 44: WordPress Building Better Relationships
Page 45: WordPress Building Better Relationships
Page 46: WordPress Building Better Relationships

post list

taxonomy usage: filter

term-basedfilter

shorter post list

Page 47: WordPress Building Better Relationships
Page 48: WordPress Building Better Relationships

Up next» + mobile+ workflow plugin+ libraries+ infrastructure

Page 49: WordPress Building Better Relationships

Gregory Corneliusdesign by Scott Dasse

(by)

Page 50: WordPress Building Better Relationships

"Holding Hands" —Elizabeth Buiehttp://www.!lickr.com/photos/ebuie/3626180065

Image credits

Page 51: WordPress Building Better Relationships