{"id":3681,"date":"2017-09-20T14:00:47","date_gmt":"2017-09-20T18:00:47","guid":{"rendered":"https:\/\/2017.annarbor.wordcamp.org\/?post_type=wcb_session&#038;p=3681"},"modified":"2017-10-31T12:44:30","modified_gmt":"2017-10-31T16:44:30","slug":"roles-caps-and-meta-caps-harnessing-the-wordpress-capabilities-api","status":"publish","type":"wcb_session","link":"https:\/\/annarbor.wordcamp.org\/2017\/session\/roles-caps-and-meta-caps-harnessing-the-wordpress-capabilities-api\/","title":{"rendered":"Roles, Caps, and Meta Caps: Harnessing the WordPress Capabilities API"},"content":{"rendered":"<p>Out of the box, WordPress provides a handful of user roles, from Subscriber to Administrator, each with an increasing level of access to manage content and settings on the site. While these roles provide a great starting point for many WordPress sites, they don\u2019t offer the granularity one expects in a large organization with complex editorial workflows. Fortunately, these roles just begin to tap into the power of WordPress\u2019s underlying capabilities API, which provides fine-grained access control for every aspect of the site\u2019s administration, from controlling who can access a settings screen to which users can edit or publish a particular post.<\/p>\n<p>This presentation focuses on the technical aspects of role and capability management in WordPress. How do you create and edit user roles? How do you dynamically filter capabilities? What the heck is a \u201cmeta capability\u201d? How can you have more control than the various role editing plugins provide? We\u2019ll take a journey through the code to learn the most effective and efficient ways to manage your users\u2019 editorial and administrative experiences, using some examples from solutions Modern Tribe has implemented at Stanford Law School and Harvard Law School.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Out of the box, WordPress provides a handful of user roles, from Subscriber to Administrator, each with an increasing level of access to manage content and settings on the site. While these roles provide a great starting point for many &hellip; <a href=\"https:\/\/annarbor.wordcamp.org\/2017\/session\/roles-caps-and-meta-caps-harnessing-the-wordpress-capabilities-api\/\">Continue reading <span class=\"assistive-text\">Roles, Caps, and Meta Caps: Harnessing the WordPress Capabilities API<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":383275,"featured_media":0,"template":"","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_wcpt_session_time":1507992600,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"http:\/\/flightless.us\/slides\/annarbor-2017\/","_wcpt_session_video":"","_wcpt_speaker_id":[3669],"footnotes":""},"session_track":[5041,867186],"session_category":[],"class_list":["post-3681","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-developer","wcb_track-east-conference-room"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p83Bmu-Xn","session_date_time":{"date":"October 14, 2017","time":"10:50 am"},"session_speakers":[{"id":"3669","slug":"jonathan-brinley","name":"Jonathan Brinley","link":"https:\/\/annarbor.wordcamp.org\/2017\/speaker\/jonathan-brinley\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions\/3681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":2,"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions\/3681\/revisions"}],"predecessor-version":[{"id":3875,"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions\/3681\/revisions\/3875"}],"speakers":[{"embeddable":true,"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wp\/v2\/speakers\/3669"}],"author":[{"embeddable":true,"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wporg\/v1\/users\/jbrinley"}],"wp:attachment":[{"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wp\/v2\/media?parent=3681"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wp\/v2\/session_track?post=3681"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/annarbor.wordcamp.org\/2017\/wp-json\/wp\/v2\/session_category?post=3681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}