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.
14. What makes them hard?
Lack of vision Inadequate Politics
search
Lack of capabilities
consistency
Performance
Lack of clear
accountability Complex
work lows
Team dynamics
and skill Focusing on
technology before
understanding the
problem
16. How many plugins does it take?
Main Main Integrated
Third-Party BU-speci ic w/ BU apps
Gravity Forms BU Navigation BU Calendar
WP SuperCache Access Control List BU Maps
(w/ Single Sign-on)
Akismet Google Search
User Management Appliance
Networks for (w/ Single Sign-on)
WordPress Course Feeds
Content Banner
Training Manager
Post Details
Emergency Alert
Advanced Tiny MCE
Site Manager
....
17. the magic number
seven +/- two
*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.
26. Bene its Risks
• Admin menu w/label • Not supported by all
plugins
• Separate templates
(automatic) • More difficult to move
• Separate namespace • No XML-RPC support
• Easy to add • No mobile support
metaboxes
• No cross-relationship
• Good performance support built-in
27. Post type registration
$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'));