Successfully reported this slideshow.

WordPress Workflows Expanded

0

Share

Loading in …3
×
1 of 65
1 of 65

WordPress Workflows Expanded

0

Share

Download to read offline

WordPress includes a well-defined workflow for running a blog with multiple contributors in various roles. It works great; But what if you are using WordPress to run a 1,000 page hierarchical site? Well… the workflows available are a bit limited without getting under the hood. For example, WordPress does not define fine-grained capabilities for controlling who can edit published content. As a result, users have to be granted full editing permissions, which increases the chance that a less-experienced user will make an ill-advised change. Drawing from our experience running large Multisite installations, Boston University has developed a couple of plugins to address some of the limitations. And for the first time, we are planning to release our plugins to the broader WordPress community under the GPL.

This talk will include an overview of the role/capability system presented from both a user and developer perspective as well as overviews of the BU Versions and BU Section Editing plugins. Along the way, various insights will be shared that provide a window into how BU has built an effective content management system on top of WordPress.

WordPress includes a well-defined workflow for running a blog with multiple contributors in various roles. It works great; But what if you are using WordPress to run a 1,000 page hierarchical site? Well… the workflows available are a bit limited without getting under the hood. For example, WordPress does not define fine-grained capabilities for controlling who can edit published content. As a result, users have to be granted full editing permissions, which increases the chance that a less-experienced user will make an ill-advised change. Drawing from our experience running large Multisite installations, Boston University has developed a couple of plugins to address some of the limitations. And for the first time, we are planning to release our plugins to the broader WordPress community under the GPL.

This talk will include an overview of the role/capability system presented from both a user and developer perspective as well as overviews of the BU Versions and BU Section Editing plugins. Along the way, various insights will be shared that provide a window into how BU has built an effective content management system on top of WordPress.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

WordPress Workflows Expanded

  1. 1. WordPress Workflows + Expanded
  2. 2. 700 sites 581 sites 342 sites 141 sites 136 sites 0 sites 2007 2008 2009 2010 2011 2012
  3. 3. Total: + 255 In-progress + 2,596 Blogs = 3,551 Sites 2007 2008 2009 2010 2011 2012
  4. 4. A range of offerings: 1. Fully custom 2. Quick setup 3. DIY tools
  5. 5. How many plugins does it take? Main Main Integrated Third-Party BU-specific 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 Yet Another Related Training Manager Posts Plugin Post Details Emergency Alert Advanced Tiny MCE Site Manager ....
  6. 6. What makes large sites so difficult? Lack of vision Search Lack of Performance & consistency Scaling Lack of clear Complex accountability workflows Team dynamics Politics and skill
  7. 7. What makes large sites so difficult? Lack of vision Search Lack of Performance & consistency Scaling Lack of clear Complex accountability workflows Team dynamics Politics and skill
  8. 8. BU Versions + BU Section Editing
  9. 9. Design Goals» + Blend naturally into the existing WordPress admin UI + Simple to use + Manage permissions with a full view of all post content + Perform well on sites with more than 2,000 pages + Support custom post types
  10. 10. BU Versions!
  11. 11. Jane Doe, Contributor
  12. 12. John Smith, administrator
  13. 13. The history of a page t ed e d ea d lo n te es cr e c na rit e ge lish e er rw al p ag pa ub pag lt e n a v i p o rig o te a d rn ite te ed al
  14. 14. Roadmap» + Compare changes with original + Support cloning of meta data and the meta boxes used to manage the data + Simple notifications + Support custom statuses + Preview all alternate versions as once (tricky)
  15. 15. BU Section Editing!
  16. 16. John Smith, administrator
  17. 17. Jane Doe, Contributor
  18. 18. Now accepting pull requests... + BU Versions https://github.com/bu-ist/bu-versions + BU Section Editing https://github.com/bu-ist/bu-section-editing
  19. 19. Contributors: + Mike Burns, developer + Sam Roach, UX designer + Scott Dasse, designer + Mike Waecker, project manager + Alex Haas, quality assurance analyst
  20. 20. Related Plugins: + Members + Edit Flow (Automattic) + ICE (NYTimes)
  21. 21. Roles + Capabilities
  22. 22. Default Roles» + Administrator - Somebody who has access to all the administration features + Editor - Somebody who can publish and manage posts and pages as well as manage other users' posts, etc. + Author - Somebody who can publish and manage their own posts + Contributor - Somebody who can write and manage their posts but not publish them + Subscriber - Somebody who can only manage their profile
  23. 23. WordPress Permissions: 1. Primitive Capabilities 2. Meta Capabilities Roles + Capabilities
  24. 24. unfiltered_html delete_users Administrator create_users Primitive edit_theme_options delete_themes edit_users list_users Capabilities switch_themes edit_themes remove_users add_users read update_themes promote_users edit_posts install_themes edit_others_posts edit_published_posts activate_plugins edit_private_posts edit_plugins delete_posts update_plugins delete_others_posts delete_plugins delete_published_posts install_plugins delete_private_posts read_private_posts edit_dashboard publish_posts manage_options moderate_comments edit_pages manage_categories edit_others_pages manage_links edit_published_pages publish_pages edit_files delete_pages upload_files delete_others_pages unfiltered_upload delete_published_pages import delete_private_pages export edit_private_pages update_core read_private_pages Roles + Capabilities
  25. 25. unfiltered_html delete_users Administrator create_users Primitive edit_theme_options delete_themes edit_users list_users Capabilities switch_themes edit_themes remove_users add_users read update_themes promote_users edit_posts install_themes edit_others_posts edit_published_posts activate_plugins edit_private_posts edit_plugins delete_posts update_plugins delete_others_posts delete_plugins delete_published_posts install_plugins delete_private_posts read_private_posts edit_dashboard publish_posts manage_options moderate_comments edit_pages manage_categories edit_others_pages manage_links edit_published_pages publish_pages edit_files delete_pages upload_files delete_others_pages unfiltered_upload delete_published_pages import delete_private_pages export edit_private_pages update_core read_private_pages Roles + Capabilities
  26. 26. current_user_can('edit_post',  10) map_meta_cap() has_cap('edit_published_posts') Roles + Capabilities
  27. 27. current_user_can('edit_post',  10) BU Section Editing map_meta_cap() filter map_meta_cap() has_cap('edit_published_in_section') Roles + Capabilities
  28. 28. current_user_can('publish_posts') map_meta_cap() has_cap('published_posts') Roles + Capabilities
  29. 29. Uh, Oh! No 'publish_post' Meta Capability Roles + Capabilities
  30. 30. hack... hack... find  a  work-­‐around... submit  WordPress  core  trac  ticket... write  unit  tests... submit  a  patch... Roles + Capabilities
  31. 31. Limitations» + Capabilities are not stored separate from roles + Capabilities do not have labels or descriptions Roles + Capabilities
  32. 32. Roles + Capabilities
  33. 33. Limitations» + Capabilities are not stored separate from roles + Capabilities do not have labels or descriptions + No API exists for setting a capability to false; remove_cap() deletes the capabilities making it difficult to determine whether a capability was removed or just was never added Roles + Capabilities
  34. 34. The value of open source core developer community developer
  35. 35. "The foundation of open source projects is rough consensus and working code" —Jacob Kaplan-Moss
  36. 36. Resources» + http://make.wordpress.org + http://core.trac.wordpress.org + freenode.net #wordpress-dev + wp-hackers@lists.automattic.com
  37. 37. Up next» + infrastructure revamp + responsive + open source
  38. 38. (by) Gregory Cornelius @gcorne design by Scott Dasse

×