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

More Related Content

Similar to Wordcamp Fayetteville Pods Presentation (PPTX)

Wordcamp Fayetteville Pods Presentation (PDF)
Wordcamp Fayetteville Pods Presentation (PDF)Wordcamp Fayetteville Pods Presentation (PDF)
Wordcamp Fayetteville Pods Presentation (PDF)mpvanwinkle
 
An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShellDale Lane
 
Pxb For Yapc2008
Pxb For Yapc2008Pxb For Yapc2008
Pxb For Yapc2008maximgrp
 
Intro to CouchDB
Intro to CouchDBIntro to CouchDB
Intro to CouchDBsbisbee
 
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)James Titcumb
 
Advanced Perl Techniques
Advanced Perl TechniquesAdvanced Perl Techniques
Advanced Perl TechniquesDave Cross
 
Advanced Drupal Views: Theming your View
Advanced Drupal Views: Theming your ViewAdvanced Drupal Views: Theming your View
Advanced Drupal Views: Theming your ViewRyan Cross
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with PerlDave Cross
 
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...webhostingguy
 
Real life-coffeescript
Real life-coffeescriptReal life-coffeescript
Real life-coffeescriptDavid Furber
 
How Xslate Works
How Xslate WorksHow Xslate Works
How Xslate WorksGoro Fuji
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalystdwm042
 
P H P Part I I, By Kian
P H P  Part  I I,  By  KianP H P  Part  I I,  By  Kian
P H P Part I I, By Kianphelios
 
Allura - an Open Source MongoDB Based Document Oriented SourceForge
Allura - an Open Source MongoDB Based Document Oriented SourceForgeAllura - an Open Source MongoDB Based Document Oriented SourceForge
Allura - an Open Source MongoDB Based Document Oriented SourceForgeRick Copeland
 
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)James Titcumb
 

Similar to Wordcamp Fayetteville Pods Presentation (PPTX) (20)

Wordcamp Fayetteville Pods Presentation (PDF)
Wordcamp Fayetteville Pods Presentation (PDF)Wordcamp Fayetteville Pods Presentation (PDF)
Wordcamp Fayetteville Pods Presentation (PDF)
 
PHP and Cassandra
PHP and CassandraPHP and Cassandra
PHP and Cassandra
 
An Introduction to Windows PowerShell
An Introduction to Windows PowerShellAn Introduction to Windows PowerShell
An Introduction to Windows PowerShell
 
Pxb For Yapc2008
Pxb For Yapc2008Pxb For Yapc2008
Pxb For Yapc2008
 
Intro to CouchDB
Intro to CouchDBIntro to CouchDB
Intro to CouchDB
 
Framework
FrameworkFramework
Framework
 
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
 
Advanced Perl Techniques
Advanced Perl TechniquesAdvanced Perl Techniques
Advanced Perl Techniques
 
Advanced Drupal Views: Theming your View
Advanced Drupal Views: Theming your ViewAdvanced Drupal Views: Theming your View
Advanced Drupal Views: Theming your View
 
PHP
PHP PHP
PHP
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with Perl
 
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
 
Real life-coffeescript
Real life-coffeescriptReal life-coffeescript
Real life-coffeescript
 
How Xslate Works
How Xslate WorksHow Xslate Works
How Xslate Works
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalyst
 
P H P Part I I, By Kian
P H P  Part  I I,  By  KianP H P  Part  I I,  By  Kian
P H P Part I I, By Kian
 
Modern Perl
Modern PerlModern Perl
Modern Perl
 
Ams adapters
Ams adaptersAms adapters
Ams adapters
 
Allura - an Open Source MongoDB Based Document Oriented SourceForge
Allura - an Open Source MongoDB Based Document Oriented SourceForgeAllura - an Open Source MongoDB Based Document Oriented SourceForge
Allura - an Open Source MongoDB Based Document Oriented SourceForge
 
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
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
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
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?
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 

Wordcamp Fayetteville Pods Presentation (PPTX)

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