SlideShare a Scribd company logo
1 of 65
Download to read offline
WordPress
Workflows
+ Expanded
700 sites

                            581 sites

                342 sites


      141 sites
 136 sites
0 sites
  2007   2008       2009    2010   2011   2012
Total:

+ 255 In-progress
+ 2,596 Blogs
= 3,551 Sites

2007     2008   2009   2010   2011   2012
A range of offerings:

1. Fully custom
2. Quick setup
3. DIY tools
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
                          ....
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
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
BU Versions
+ BU Section
Editing
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
BU Versions!
Jane Doe,
Contributor
John Smith,
administrator
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
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)
BU Section
Editing!
John Smith,
administrator
Jane Doe,
Contributor
Now accepting pull requests...


+ BU Versions
https://github.com/bu-ist/bu-versions
+ BU Section Editing
https://github.com/bu-ist/bu-section-editing
Contributors:

+ Mike Burns, developer
+ Sam Roach, UX designer
+ Scott Dasse, designer
+ Mike Waecker, project manager
+ Alex Haas, quality assurance analyst
Related Plugins:

+ Members
+ Edit Flow (Automattic)
+ ICE (NYTimes)
Roles +
Capabilities
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
WordPress Permissions:

1. Primitive
Capabilities
2. Meta
Capabilities
                         Roles +
                         Capabilities
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
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
current_user_can('edit_post',	
  10)




          map_meta_cap()




has_cap('edit_published_posts')


                                       Roles +
                                       Capabilities
current_user_can('edit_post',	
  10)




BU Section Editing
map_meta_cap() filter
                         map_meta_cap()




              has_cap('edit_published_in_section')



                                                      Roles +
                                                      Capabilities
current_user_can('publish_posts')




         map_meta_cap()




   has_cap('published_posts')


                                    Roles +
                                    Capabilities
Uh, Oh!
No 'publish_post'
Meta Capability


                    Roles +
                    Capabilities
hack...
hack...
find	
  a	
  work-­‐around...
submit	
  WordPress	
  core	
  trac	
  ticket...
write	
  unit	
  tests...
submit	
  a	
  patch...



                                         Roles +
                                         Capabilities
Limitations»
+ Capabilities are not stored separate from roles
+ Capabilities do not have labels or descriptions




                                           Roles +
                                           Capabilities
Roles +
Capabilities
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
The value of open source




  core
             developer     community
developer
"The foundation of open source projects is
   rough consensus and working code"
                        —Jacob Kaplan-Moss
Resources»
+ http://make.wordpress.org
+ http://core.trac.wordpress.org
+ freenode.net #wordpress-dev
+ wp-hackers@lists.automattic.com
Up next»   + infrastructure
           revamp
           + responsive
           + open source
(by)




Gregory Cornelius
             @gcorne




design by Scott Dasse

More Related Content

Similar to WordPress Workflows Expanded

Improving joomla's backend user experience
Improving joomla's backend user experienceImproving joomla's backend user experience
Improving joomla's backend user experienceLuke Summerfield
 
Synchronizing Creativity with Content Management
Synchronizing Creativity with Content ManagementSynchronizing Creativity with Content Management
Synchronizing Creativity with Content ManagementGregory Cornelius
 
Fronteers - Drupal 7 ux
Fronteers   - Drupal 7 uxFronteers   - Drupal 7 ux
Fronteers - Drupal 7 uxBojhan
 
Drupal intro-training-in-mumbai
Drupal intro-training-in-mumbaiDrupal intro-training-in-mumbai
Drupal intro-training-in-mumbaivibrantuser
 
Typical customization pitfalls in Magento 2
Typical customization pitfalls in Magento 2Typical customization pitfalls in Magento 2
Typical customization pitfalls in Magento 2Magecom UK Limited
 
Synapse india reviews on drupal intro
Synapse india reviews on drupal introSynapse india reviews on drupal intro
Synapse india reviews on drupal introTarunsingh198
 
Improving Joomla’s Backend User Experience
Improving Joomla’s Backend User ExperienceImproving Joomla’s Backend User Experience
Improving Joomla’s Backend User ExperienceRandy Carey
 
Using Drupal Features in B-Translator
Using Drupal Features in B-TranslatorUsing Drupal Features in B-Translator
Using Drupal Features in B-TranslatorDashamir Hoxha
 
Drupal for Webmasters by Brett Baker
Drupal for Webmasters by Brett BakerDrupal for Webmasters by Brett Baker
Drupal for Webmasters by Brett Bakerwebfinearts
 
Drupal 8 for site builders
Drupal 8 for site buildersDrupal 8 for site builders
Drupal 8 for site buildersKim Pepper
 
Justin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12neJustin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12neJustin Herrin
 
Enrich your extensions with Joomla! ACL support
Enrich your extensions with Joomla! ACL supportEnrich your extensions with Joomla! ACL support
Enrich your extensions with Joomla! ACL supportSander Potjer
 
Role-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4jRole-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4jNeo4j
 

Similar to WordPress Workflows Expanded (20)

Improving joomla's backend user experience
Improving joomla's backend user experienceImproving joomla's backend user experience
Improving joomla's backend user experience
 
Synchronizing Creativity with Content Management
Synchronizing Creativity with Content ManagementSynchronizing Creativity with Content Management
Synchronizing Creativity with Content Management
 
Fronteers - Drupal 7 ux
Fronteers   - Drupal 7 uxFronteers   - Drupal 7 ux
Fronteers - Drupal 7 ux
 
Drupal intro-training-in-mumbai
Drupal intro-training-in-mumbaiDrupal intro-training-in-mumbai
Drupal intro-training-in-mumbai
 
Typical customization pitfalls in Magento 2
Typical customization pitfalls in Magento 2Typical customization pitfalls in Magento 2
Typical customization pitfalls in Magento 2
 
Synapse india reviews on drupal intro
Synapse india reviews on drupal introSynapse india reviews on drupal intro
Synapse india reviews on drupal intro
 
Improving Joomla’s Backend User Experience
Improving Joomla’s Backend User ExperienceImproving Joomla’s Backend User Experience
Improving Joomla’s Backend User Experience
 
Using Drupal Features in B-Translator
Using Drupal Features in B-TranslatorUsing Drupal Features in B-Translator
Using Drupal Features in B-Translator
 
Drupal for Webmasters by Brett Baker
Drupal for Webmasters by Brett BakerDrupal for Webmasters by Brett Baker
Drupal for Webmasters by Brett Baker
 
J query
J queryJ query
J query
 
Features
FeaturesFeatures
Features
 
Drupal intro (1)
Drupal intro (1)Drupal intro (1)
Drupal intro (1)
 
An Introduction to Drupal
An Introduction to DrupalAn Introduction to Drupal
An Introduction to Drupal
 
Drupal 8 for site builders
Drupal 8 for site buildersDrupal 8 for site builders
Drupal 8 for site builders
 
Recipes for Drupal distributions
Recipes for Drupal distributionsRecipes for Drupal distributions
Recipes for Drupal distributions
 
Justin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12neJustin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12ne
 
Drupal -Introduction to Drupal
Drupal -Introduction to DrupalDrupal -Introduction to Drupal
Drupal -Introduction to Drupal
 
Enrich your extensions with Joomla! ACL support
Enrich your extensions with Joomla! ACL supportEnrich your extensions with Joomla! ACL support
Enrich your extensions with Joomla! ACL support
 
Role-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4jRole-Based Access Control (RBAC) in Neo4j
Role-Based Access Control (RBAC) in Neo4j
 
Drupal6 and Drupal 7 difference
Drupal6 and Drupal 7 differenceDrupal6 and Drupal 7 difference
Drupal6 and Drupal 7 difference
 

Recently uploaded

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

WordPress Workflows Expanded

  • 1.
  • 3. 700 sites 581 sites 342 sites 141 sites 136 sites 0 sites 2007 2008 2009 2010 2011 2012
  • 4. Total: + 255 In-progress + 2,596 Blogs = 3,551 Sites 2007 2008 2009 2010 2011 2012
  • 5. A range of offerings: 1. Fully custom 2. Quick setup 3. DIY tools
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. 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 ....
  • 20. 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
  • 21. 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
  • 22. BU Versions + BU Section Editing
  • 23. 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
  • 25.
  • 26.
  • 28.
  • 29.
  • 31.
  • 32.
  • 33. 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
  • 34. 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)
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 43.
  • 44.
  • 45. Now accepting pull requests... + BU Versions https://github.com/bu-ist/bu-versions + BU Section Editing https://github.com/bu-ist/bu-section-editing
  • 46. Contributors: + Mike Burns, developer + Sam Roach, UX designer + Scott Dasse, designer + Mike Waecker, project manager + Alex Haas, quality assurance analyst
  • 47. Related Plugins: + Members + Edit Flow (Automattic) + ICE (NYTimes)
  • 49. 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
  • 50. WordPress Permissions: 1. Primitive Capabilities 2. Meta Capabilities Roles + Capabilities
  • 51. 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
  • 52. 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
  • 53. current_user_can('edit_post',  10) map_meta_cap() has_cap('edit_published_posts') Roles + Capabilities
  • 54. current_user_can('edit_post',  10) BU Section Editing map_meta_cap() filter map_meta_cap() has_cap('edit_published_in_section') Roles + Capabilities
  • 55. current_user_can('publish_posts') map_meta_cap() has_cap('published_posts') Roles + Capabilities
  • 56. Uh, Oh! No 'publish_post' Meta Capability Roles + Capabilities
  • 57. hack... hack... find  a  work-­‐around... submit  WordPress  core  trac  ticket... write  unit  tests... submit  a  patch... Roles + Capabilities
  • 58. Limitations» + Capabilities are not stored separate from roles + Capabilities do not have labels or descriptions Roles + Capabilities
  • 60. 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
  • 61. The value of open source core developer community developer
  • 62. "The foundation of open source projects is rough consensus and working code" —Jacob Kaplan-Moss
  • 63. Resources» + http://make.wordpress.org + http://core.trac.wordpress.org + freenode.net #wordpress-dev + wp-hackers@lists.automattic.com
  • 64. Up next» + infrastructure revamp + responsive + open source
  • 65. (by) Gregory Cornelius @gcorne design by Scott Dasse