0
Pods + WP = CMS<br />Sort of … <br />
What do we want in a CMS?<br />Flexible – Does different things	<br />Robust – Does things well<br />
Is Wordpress a CMS? Yes<br />Wordpress is really good at publishing one kind of content: the Post<br />Its interface is ea...
Is Wordpress a CMS? No	<br />Major challenges customizing backend UI<br />All post types essentially the same<br />Custom ...
So what?<br />Time is money<br />Consultants need to maximize functionality/time equation.<br />
Custom Fields<br />Good for on the fly customization<br />Bad for complex content types<br />
Querying Custom Fields<br />$args = “meta_key=airline_name&value=American”;<br />$args = “meta_key=arrives&meta_compare=>=...
Multiple custom fields?<br />function get_post_meta_multiple($metaDataList) {<br />	global $wpdb;<br />	$querystr = "SELEC...
Scalability<br />Most wordpress users will never experience performance issues because the number pages just isn’t enough ...
Scalability<br />All posts/types are in one table.<br />All custom fields are in longtext format which means they can stor...
So What are/is Pods?<br />Not a plugin … really<br />Pods = Simple, scalable, CMS solution for Wordpress.<br />Ultimate fl...
Example: Flight List<br />
Example: Flight List<br />
Example: Flight List<br />
Example: Flight List<br />
Example: Flight List<br />
Example: Flight List<br />
Example: Flight List<br />
Example: Flight List<br />
Example: Templating<br />
Example: Templating<br /><?php<br />$flight = new Pod(‘flight’);<br />$flight->findRecords(‘arrives ASC’, -1);<br />echo $...
Example: Templating<br />
Example: Templating<br />{@field.column}<br />
Example: Templating<br />{@airline.name} - {@name}, {@departs} <br/><br />
Example: Templating<br />http://www.yourdomain.com/flights/<br />
Example: Templating<br />http://www.yourdomain.com/flights/?airline=2<br />
Example: Templating<br /><?php<br />$flight = new Pod(‘flight’);<br />$flight->findRecords(‘arrives ASC’, -1);<br />echo $...
Example: Templating<br />
Example: Templating<br /><?php<br />$form = new Pod('flight');<br />echo $form->publicForm();<br />?><br />
Example: Templating<br />
Example: Templating<br /><?php<br />$form = new Pod('flight');<br />echo $form->publicForm();<br />?><br /><?php<br />$for...
Example: Templating<br />
Example: Templating<br />
Showcase<br />
Multiple custom fields?<br />function get_post_meta_multiple($metaDataList) {<br />	global $wpdb;<br />	$querystr = "SELEC...
Showcase<br /><?php<br />$di = new Pod('distress_index');<br />$di->findRecords('name DESC', -1, "t.un > 6.00 AND t.cpi < ...
Scalability<br />Using Custom Fields:<br />600 rows x 6 custom fields = 3600 table rows<br />Using Pods:<br />600 table ro...
Showcase<br />
What about Custom Taxonomies/Post Types?	<br />Wordpress argues that custom taxonomies and the introduction of post types ...
Pods-nosis Negative?	<br />Because pods data is saved in separate tables, standard Wordpress post features are not availab...
Why use pods?	<br />Learn one plugin, build anything you want.<br />Your site has lots of relationships between types of c...
Summary	<br />There is no RIGHT way to use Wordpress as a CMS.<br />Pods is a tool for developers, not users. <br />Pods i...
More info?<br />www.podscms.org<br />www.mikevanwinkle.com<br />@podscms, @mpvanwinkle<br />
A Question?<br />Should Wordpress.org abandon it’s own attempts to make WP a CMS? Can WP be everything to everyone? <br />
Upcoming SlideShare
Loading in...5
×

Wordcamp Fayetteville Pods Presentation (PPTX)

1,758

Published on

This is @mpvanwinkle's presentation on WP PodsCMS from wordcamp fayetteville, more info here:
http://www.mikevanwinkle.com/?p=478

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,758
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Wordcamp Fayetteville Pods Presentation (PPTX)"

  1. 1. Pods + WP = CMS<br />Sort of … <br />
  2. 2. What do we want in a CMS?<br />Flexible – Does different things <br />Robust – Does things well<br />
  3. 3. Is Wordpress a CMS? Yes<br />Wordpress is really good at publishing one kind of content: the Post<br />Its interface is easy to learn and easy to teach. <br />Theming is especially powerful. Design community<br />Plugins and custom fields provide additional flexibility on a post by post basis. <br />
  4. 4. Is Wordpress a CMS? No <br />Major challenges customizing backend UI<br />All post types essentially the same<br />Custom fields difficult to work with in complex ways<br />Scalability issues<br />
  5. 5. So what?<br />Time is money<br />Consultants need to maximize functionality/time equation.<br />
  6. 6. Custom Fields<br />Good for on the fly customization<br />Bad for complex content types<br />
  7. 7. Querying Custom Fields<br />$args = “meta_key=airline_name&value=American”;<br />$args = “meta_key=arrives&meta_compare=>=&meta_value=DATE()”<br />query_posts($args);<br />
  8. 8. Multiple custom fields?<br />function get_post_meta_multiple($metaDataList) {<br /> global $wpdb;<br /> $querystr = "SELECT p.* FROM $wpdb->posts AS p WHERE p.ID IN ( ";<br /> $querystr .= "SELECT post_id FROM $wpdb->postmeta WHERE ";<br /> $innerqry = array();<br />foreach($metaDataList as $key => $value) {<br /> $innerqry[] = $wpdb->prepare( "(meta_key = %s AND meta_value = %s)", $key, $value ); <br /> }<br /> $querystr .= implode(" OR ", $innerqry);<br /> $querystr .= " GROUP BY post_id ";<br /> $querystr .= "HAVING count(*) = " . count($metaDataList);<br /> $querystr .= ") AND p.post_status = 'publish' ";<br /> $metaResults = $wpdb->get_results($querystr, OBJECT); <br /> return $metaResults;<br />}<br />Source: http://tinyurl.com/ldadam<br />
  9. 9. Scalability<br />Most wordpress users will never experience performance issues because the number pages just isn’t enough to matter. <br />But consultants still need to be concerned. <br />
  10. 10. Scalability<br />All posts/types are in one table.<br />All custom fields are in longtext format which means they can store up to 4GB.<br />Table sizes are effectively doubled by custom fields 10,000 posts with 10 cfs each is like having 100,000 rows. Add in revisions and even simple queries become hogs. <br />
  11. 11. So What are/is Pods?<br />Not a plugin … really<br />Pods = Simple, scalable, CMS solution for Wordpress.<br />Ultimate flexibility with being too time intensive. <br />Frontend/Backend Customization a cinch. <br />
  12. 12. Example: Flight List<br />
  13. 13. Example: Flight List<br />
  14. 14. Example: Flight List<br />
  15. 15. Example: Flight List<br />
  16. 16. Example: Flight List<br />
  17. 17. Example: Flight List<br />
  18. 18. Example: Flight List<br />
  19. 19. Example: Flight List<br />
  20. 20. Example: Templating<br />
  21. 21. Example: Templating<br /><?php<br />$flight = new Pod(‘flight’);<br />$flight->findRecords(‘arrives ASC’, -1);<br />echo $flight->showTemplate(‘flight-list’);<br />?><br />
  22. 22. Example: Templating<br />
  23. 23. Example: Templating<br />{@field.column}<br />
  24. 24. Example: Templating<br />{@airline.name} - {@name}, {@departs} <br/><br />
  25. 25. Example: Templating<br />http://www.yourdomain.com/flights/<br />
  26. 26. Example: Templating<br />http://www.yourdomain.com/flights/?airline=2<br />
  27. 27. Example: Templating<br /><?php<br />$flight = new Pod(‘flight’);<br />$flight->findRecords(‘arrives ASC’, -1);<br />echo $flight->getFilters(‘airline’, ‘Filter’);<br />echo $flight->showTemplate(‘flight-list’);<br />?><br />
  28. 28. Example: Templating<br />
  29. 29. Example: Templating<br /><?php<br />$form = new Pod('flight');<br />echo $form->publicForm();<br />?><br />
  30. 30. Example: Templating<br />
  31. 31. Example: Templating<br /><?php<br />$form = new Pod('flight');<br />echo $form->publicForm();<br />?><br /><?php<br />$form = new Pod('flight');<br />$fields = array('name','arrive','depart');<br />echo $form->publicForm($fields);<br />?><br />
  32. 32. Example: Templating<br />
  33. 33. Example: Templating<br />
  34. 34. Showcase<br />
  35. 35. Multiple custom fields?<br />function get_post_meta_multiple($metaDataList) {<br /> global $wpdb;<br /> $querystr = "SELECT p.* FROM $wpdb->posts AS p WHERE p.ID IN ( ";<br /> $querystr .= "SELECT post_id FROM $wpdb->postmeta WHERE ";<br /> $innerqry = array();<br />foreach($metaDataList as $key => $value) {<br /> $innerqry[] = $wpdb->prepare( "(meta_key = %s AND meta_value = %s)", $key, $value ); <br /> }<br /> $querystr .= implode(" OR ", $innerqry);<br /> $querystr .= " GROUP BY post_id ";<br /> $querystr .= "HAVING count(*) = " . count($metaDataList);<br /> $querystr .= ") AND p.post_status = 'publish' ";<br /> $metaResults = $wpdb->get_results($querystr, OBJECT); <br /> return $metaResults;<br />}<br />Source: http://tinyurl.com/ldadam<br />
  36. 36. Showcase<br /><?php<br />$di = new Pod('distress_index');<br />$di->findRecords('name DESC', -1, "t.un > 6.00 AND t.cpi < 2.00");<br />echo $di->showTemplate('distress_data_table');<br />?><br />
  37. 37. Scalability<br />Using Custom Fields:<br />600 rows x 6 custom fields = 3600 table rows<br />Using Pods:<br />600 table rows<br />
  38. 38. Showcase<br />
  39. 39. What about Custom Taxonomies/Post Types? <br />Wordpress argues that custom taxonomies and the introduction of post types alleviates the need for excessive use of custom fields. <br />But this only increases the scalability slightly, there are still problems for large sites. <br />
  40. 40. Pods-nosis Negative? <br />Because pods data is saved in separate tables, standard Wordpress post features are not available. (i.e. comments/akismet)<br />Wordpress does not currently endorse the pods cms strategy and instead is pushing the “one post type fits all strategy”.<br />Pods community is considerably smaller than the wordpress community. <br />
  41. 41. Why use pods? <br />Learn one plugin, build anything you want.<br />Your site has lots of relationships between types of content.<br />Scalability is a concern. <br />Truly custom, customization<br />
  42. 42. Summary <br />There is no RIGHT way to use Wordpress as a CMS.<br />Pods is a tool for developers, not users. <br />Pods is the most flexible/scalable CMS option currently available for Wordpress. <br />
  43. 43. More info?<br />www.podscms.org<br />www.mikevanwinkle.com<br />@podscms, @mpvanwinkle<br />
  44. 44. A Question?<br />Should Wordpress.org abandon it’s own attempts to make WP a CMS? Can WP be everything to everyone? <br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×