SlideShare una empresa de Scribd logo
1 de 41
#CMSX #ChunkyWP@jeckman
Beyond Posts & Pages:
Structured Content in
WordPress
John Eckman
ISITE Design | CMS Myth
#CMSX #ChunkyWP@jeckman
2
http://www.isitedesign.com/
#CMSX #ChunkyWP@jeckman
3
http://delight.us/
#CMSX #ChunkyWP@jeckman
4
http://www.cmsmyth.com/
#CMSX #ChunkyWP@jeckman
Shirts!
5
#CMSX #ChunkyWP@jeckman
Shirts
First five people to tweet:
“Learning how to make WordPress
Chunky with @jeckman at #cmsx
#chunkyWP”
6
#CMSX #ChunkyWP@jeckman
Agenda
• Why do we need structured content?
• How does WordPress do it?
– Metadata
– Custom Post Types
– Custom Taxonomies
• Examples
– Basic: Slides, Alerts
– Complex: Stories
• Notes
– Search
– Controlling display
– Relationships
7
#CMSX #ChunkyWP@jeckman
Content Strategy 201
8
#CMSX #ChunkyWP@jeckman
Adaptive Content
Five Key Elements of Adaptive
Content:
1.Reusable content
– Content developed to maximize reuse
– Different formats/types available
1.Structured content
– Discrete chunks can be combined in
different ways on different platforms
9
http://www.abookapart.com/products/content-strategy-for-mobile
#CMSX #ChunkyWP@jeckman
Adaptive Content, Cont’d
3. Presentation-independent content
– Design decisions made by platform
based on rules, not by authors
3. Meaningful metadata
– Metadata which can be used by the
platform to drive presentation rules
3. Usable CMS interfaces
– UI and workflow to encourage well
structured and metadata-enhanced
content
10
#CMSX #ChunkyWP@jeckman
WordPress Blobs
11
#CMSX #ChunkyWP@jeckman
Getting chunkier
12
#CMSX #ChunkyWP@jeckman
WordPress Chunks
To enhance structured content in
WordPress, we need more:
•Custom Post Types
– Not just “pages” and “posts”
– Complex content types
•Custom Taxonomies
– Sort, categorize, relate
•Custom Meta Data
– More boxes for granular data
13
#CMSX #ChunkyWP@jeckman
Example: Alerts
14
#CMSX #ChunkyWP@jeckman
Example: Alerts
15
#CMSX #ChunkyWP@jeckman
Code Example (Simple)
16
http://codex.wordpress.org/Function_Reference/register_post_type
#CMSX #ChunkyWP@jeckman
Code
17
Key is register_post_type
Arguments passed control:
•What to call it (Labels)
•Where to show it
– Public, Show UI, Searchable,
has_archive
– Menu position
•Who can use it (capabilities)
•What it includes (supports)
http://codex.wordpress.org/Function_Reference/r
egister_post_type
#CMSX #ChunkyWP@jeckman
Example: Slides
18
http://jleuze.com/plugins/meteor-slides/
#CMSX #ChunkyWP@jeckman
Example: Meteor Slides
19
#CMSX #ChunkyWP@jeckman
Code
20
http://jleuze.com/plugins/meteor-slides/
#CMSX #ChunkyWP@jeckman
Code (Cont’d)
21
#CMSX #ChunkyWP@jeckman
More Complex Example
• Client: Generation Citizen
• Custom Post Type for “Stories”
• Secondary HTML Areas
• Custom Taxonomies: Locations,
Topics
• Custom Metadata
• Attachments
22
#CMSX #ChunkyWP@jeckman
Demo – Stories page
23
#CMSX #ChunkyWP@jeckman
Secondary HTML Areas
24
http://wordpress.org/exten
d/plugins/secondary-html-
content/
#CMSX #ChunkyWP@jeckman
Secondary HTML areas
25
#CMSX #ChunkyWP@jeckman
Taxonomies
Custom Post Types can be further
enhanced with custom Taxonomies
In this case that means:
•Register Taxonomy
•Show custom meta box
•Save on submit
26
#CMSX #ChunkyWP@jeckman
27
Here we have a custom post type for
“Stories” with two custom taxonomies:
Locations and Topics
Here we have a custom post type for
“Stories” with two custom taxonomies:
Locations and Topics
#CMSX #ChunkyWP@jeckman
28
These Meta Boxes enable selection of
Location / Topic from a pre-defined set
These Meta Boxes enable selection of
Location / Topic from a pre-defined set
#CMSX #ChunkyWP@jeckman
Custom Taxonomy Code
29 http://codex.wordpress.org/Function_Reference/register_taxonomy
#CMSX #ChunkyWP@jeckman
Show Custom Meta Box
30
#CMSX #ChunkyWP@jeckman
Style Locations Box
31
#CMSX #ChunkyWP@jeckman
Save on Submit
32
#CMSX #ChunkyWP@jeckman
33
We’ve also got custom meta data here for:
•Pull Quote
•School
•Teacher
•Democracy Coaches
#CMSX #ChunkyWP@jeckman
Custom Meta Boxes
• Process for these other meta boxes
is similar:
– add_meta_box() passed a styling
function
– style function outputs the html
needed
– save function added to save_post
action
– update_post_meta to store
34
#CMSX #ChunkyWP@jeckman
Attachments
35
http://wordpress.org/ex
tend/plugins/attachme
nts/
#CMSX #ChunkyWP@jeckman
Notes
• Search
– WordPress search does not search
custom post meta data
– This means secondary html areas
– http://wordpress.org/extend/plugins/relevan
or other search
• Display
– You’ve customized the content so you
can’t rely on <?php the_content() ?>
36
#CMSX #ChunkyWP@jeckman
Notes
37
#CMSX #ChunkyWP@jeckman
Q & A
• Model content first
• Find the tradeoff
– More structure = more complexity
– Less structure = less flexibility
• Focus on goals – why before how
• Go forth and structure content!
38
#CMSX #ChunkyWP@jeckman
39
Thank you.
John Eckman
ISITE Design | CMS Myth
www.isitedesign.com
www.cmsmyth.com
@jeckman
#CMSX #ChunkyWP@jeckman
Resources
• Plugins
– http://wordpress.org/extend/plugins/a
dvanced-custom-fields/
– http://wordpress.org/extend/plugins/c
ustom-content-type-manager/
– http://wordpress.org/extend/plugins/t
ypes/ (part of premium toolset)
– http://wordpress.org/extend/plugins/c
ustom-post-type-ui/
40
#CMSX #ChunkyWP@jeckman
Resources
• Plugins
– http://wordpress.org/extend/plugins/p
osts-to-posts/
• Tools
– http://generatewp.com/post-type/
41

Más contenido relacionado

Más de John Eckman

Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
John Eckman
 

Más de John Eckman (20)

Don't fear the block: Gutenberg is gettin' good
Don't fear the block: Gutenberg is gettin' goodDon't fear the block: Gutenberg is gettin' good
Don't fear the block: Gutenberg is gettin' good
 
#NoStalking: Advertising & User Privacy
#NoStalking: Advertising & User Privacy#NoStalking: Advertising & User Privacy
#NoStalking: Advertising & User Privacy
 
There's a Reason We Call Them Institutions: Working in Higher Education Witho...
There's a Reason We Call Them Institutions: Working in Higher Education Witho...There's a Reason We Call Them Institutions: Working in Higher Education Witho...
There's a Reason We Call Them Institutions: Working in Higher Education Witho...
 
Working the Open: Open Source in an Agency
Working the Open: Open Source in an AgencyWorking the Open: Open Source in an Agency
Working the Open: Open Source in an Agency
 
GDPR FTW, or, How I Learned to Stop Worrying and Love Privacy By Design
GDPR FTW, or, How I Learned to Stop Worrying and Love Privacy By DesignGDPR FTW, or, How I Learned to Stop Worrying and Love Privacy By Design
GDPR FTW, or, How I Learned to Stop Worrying and Love Privacy By Design
 
The Blob, the Chunk, & the Block: Structured Content in the Age of Gutenberg
The Blob, the Chunk, & the Block: Structured Content in the Age of GutenbergThe Blob, the Chunk, & the Block: Structured Content in the Age of Gutenberg
The Blob, the Chunk, & the Block: Structured Content in the Age of Gutenberg
 
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
Taking Back What and From Whom?: Imagined Communities and Role of WordPress i...
 
Gutenberg for Agencies
Gutenberg for AgenciesGutenberg for Agencies
Gutenberg for Agencies
 
Engaging in Digital: Sites for Non-Profits
Engaging in Digital: Sites for Non-ProfitsEngaging in Digital: Sites for Non-Profits
Engaging in Digital: Sites for Non-Profits
 
Dear Firstname Lastname: Personalization & Content Targeting
Dear Firstname Lastname: Personalization & Content TargetingDear Firstname Lastname: Personalization & Content Targeting
Dear Firstname Lastname: Personalization & Content Targeting
 
But Why? Use Cases for the REST API
But Why? Use Cases for the REST APIBut Why? Use Cases for the REST API
But Why? Use Cases for the REST API
 
WPDrama & The Four Agreements
WPDrama & The Four AgreementsWPDrama & The Four Agreements
WPDrama & The Four Agreements
 
Distributed, not Disconnected: Employee Engagement for Remote Companies
Distributed, not Disconnected: Employee Engagement for Remote CompaniesDistributed, not Disconnected: Employee Engagement for Remote Companies
Distributed, not Disconnected: Employee Engagement for Remote Companies
 
Disrupting Distribution
Disrupting DistributionDisrupting Distribution
Disrupting Distribution
 
Managing Clients without Going Crazy
Managing Clients without Going CrazyManaging Clients without Going Crazy
Managing Clients without Going Crazy
 
Stop Gathering Requirements - Start Defining Success
Stop Gathering Requirements - Start Defining SuccessStop Gathering Requirements - Start Defining Success
Stop Gathering Requirements - Start Defining Success
 
Client Diplomacy: From Adversaries to Allies
Client Diplomacy: From Adversaries to AlliesClient Diplomacy: From Adversaries to Allies
Client Diplomacy: From Adversaries to Allies
 
WordPress as a CMS Platform: Gilbane 2015
WordPress as a CMS Platform: Gilbane 2015WordPress as a CMS Platform: Gilbane 2015
WordPress as a CMS Platform: Gilbane 2015
 
WordPress and the Enterprise Disconnect
WordPress and the Enterprise DisconnectWordPress and the Enterprise Disconnect
WordPress and the Enterprise Disconnect
 
The Future of WordPress (and Your Role In It)
The Future of WordPress (and Your Role In It)The Future of WordPress (and Your Role In It)
The Future of WordPress (and Your Role In It)
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Beyond Posts and Pages: Structured Content in WordPress

Notas del editor

  1. www.isitedesign.com
  2. Delight.us
  3. www.cmsmyth.com
  4. Why do we need structured content? If we ever hope to get to adaptive content we need structure.
  5. Arguably, by default, WordPress creates “blobs” – what does in to that big primary WYSIWYG editor is a mixture of headings, subheadings, callouts, images, and other content – but in a fully unstructured way.
  6. But we do actually have some existing metadata: Date Categories Tags Title Excerpt Post Thumbnail / Featured Image Author info (based on the logged in user). Further, media “attached” to the post are tracked as a relationship in meta and can be pulled up, including post-thumbnail.
  7. In this simple example, we get a custom post type for alerts but there isn’t really much complexity to it – otherwise it is mostly a blob. I do get to use the “date published” differently in the template
  8. Meteor slides plugin uses Custom Post Types to enable management of slideshows
  9. This is the code in the template itself – secondary html areas are mapped based on their names
  10. Example showing custom taxonomies. Here we’ve created a custom post type of “Stories” – and added two custom taxonomies, one for Location and one for Topics.
  11. Note: adding ‘ popular_items ’ =&gt; NULL, to the $labels array will suppress the “ tag cloud ” on the admin edit screen for the custom taxonomy
  12. Note we’re checking here to see if the nonce is correctly set (prevent forged form submission)
  13. Lengthy discussion about the future of WP – whether relationships between posts belongs in core or not. For now, there is the Posts2Posts plugin