WordPress is an                  Application FrameworkFriday, 17 August 12                      1
Tom Willmot                           humanmade • happytables • wpremote                   @tomwillmot                    ...
WordPress is not just for blogging.Friday, 17 August 12                                         3
WordPress is a CMS.Friday, 17 August 12                         4
WordPress is not just a CMS.Friday, 17 August 12                                  5
WordPress is an Application Framework.Friday, 17 August 12                                            6
Friday, 17 August 12   7
• What is an Application Framework                       • What makes WordPress an Application                         Fra...
What is an Application FrameworkFriday, 17 August 12                                      9
A web application framework is a software                       framework that is designed to support the                 ...
That sounds a lot like                           WordPress!Friday, 17 August 12                            11
A web application framework is a software                       framework that is designed to support the                 ...
A web application framework is a software                       framework that is designed to support the                 ...
WordPress is web software you can use to                       create a beautiful website or blog.Friday, 17 August 12    ...
WordPress is an Application Framework that                       happens to come with a default app called                ...
WordPress is web software you can use to                       create a beautiful app, website or blog.Friday, 17 August 1...
Application Frameworks are libraries of                       useful API’s & ClassesFriday, 17 August 12                  ...
Core API’s                       •   HTTP                       •   XMLRPC                       •   WP_User              ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
•   HTTP                       •   XMLRPC                       •   WP_User                       •   WP_Rewrite          ...
What did I miss?Friday, 17 August 12                      33
The thing that makes WordPress uniquely                       powerful?Friday, 17 August 12                               ...
add_filter();Friday, 17 August 12                  35
3rd Party API’s                 • TLC Transients                 • WP Thumb                 • Custom Meta Box API         ...
• TLC Transients                       https://github.com/markjaquith/WP-TLC-                       Transients            ...
• TLC Transients              • WP Thumb                       https://github.com/humanmade/WPThumb              • Custom ...
• TLC Transients              • WP Thumb              • Custom Meta Box API                       https://github.com/human...
• TLC Transients              • WP Thumb              • Custom Meta Box API              • WordPress Objects              ...
• TLC Transients              • WP Thumb              • Custom Meta Box API              • WordPress Objects              ...
All these API’s can be                       used without the “Blog”                          part of WordPressFriday, 17 ...
Still need convincing?                 •     Continuously improved.                 •     Great backwards compatibility su...
Why Not                 • Some of the core API’s are old and nasty.                 • It doesn’t enforce a strict MVC stru...
WordPress powered                            Apps!Friday, 17 August 12                       45
WP Remote                         Quick DemoFriday, 17 August 12                  46
WordPress                             Knockout.js                                            JSON                   Back-e...
• Users                 • Sites                       • Site Meta                       • Core, Plugin and Theme updates  ...
Users                 • Standard WordPress subscriber level users.                 • Custom Login, Registration and Lost  ...
Sites                 • Sites are stored as a custom post_type.                 • Each site has the post_author set to the...
Site Groups                 • Site Group is a custom taxonomy                 • Each group is a new term in that taxonomy ...
Plugin                 • Installed on each of the users sites                 • We use the HTTP API to communicate        ...
Others                 • AMC Story Sync                   http://www.amctv.com/shows/breaking-bad/                   story...
Done!Friday, 17 August 12           54
Thanks For ListeningFriday, 17 August 12                          55
Ask Questions Now                       Or later on twitter @tomwillmotFriday, 17 August 12                               ...
Upcoming SlideShare
Loading in …5
×

Using WordPress as an Application Framework

1,651 views

Published on

Published in: Technology, Education
1 Comment
9 Likes
Statistics
Notes
  • WordPress has more powerful plugins, that helps the end-user to create and maintain their website, blog very easy
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
1,651
On SlideShare
0
From Embeds
0
Number of Embeds
133
Actions
Shares
0
Downloads
21
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide

Using WordPress as an Application Framework

  1. 1. WordPress is an Application FrameworkFriday, 17 August 12 1
  2. 2. Tom Willmot humanmade • happytables • wpremote @tomwillmot tomwillmot.com @humanmadeltd hmn.md @wpremote wpremote.com @happytables happytables.com github.com/humanmadeFriday, 17 August 12 2
  3. 3. WordPress is not just for blogging.Friday, 17 August 12 3
  4. 4. WordPress is a CMS.Friday, 17 August 12 4
  5. 5. WordPress is not just a CMS.Friday, 17 August 12 5
  6. 6. WordPress is an Application Framework.Friday, 17 August 12 6
  7. 7. Friday, 17 August 12 7
  8. 8. • What is an Application Framework • What makes WordPress an Application Framework • How we built the WP Remote web app on WordPress.Friday, 17 August 12 8
  9. 9. What is an Application FrameworkFriday, 17 August 12 9
  10. 10. A web application framework is a software framework that is designed to support the development of dynamic websites,Web applications and Web services.The framework aims to alleviate the overhead associated with common activities performed in Web development. For example, many frameworks provide libraries for database access, templating frameworks and session management, and often promote code reuse. http://en.wikipedia.org/wiki/Web_application_frameworkFriday, 17 August 12 10
  11. 11. That sounds a lot like WordPress!Friday, 17 August 12 11
  12. 12. A web application framework is a software framework that is designed to support the development of dynamic websites,Web applications and Web services.The framework aims to alleviate the overhead associated with common activities performed in Web development. For example, many frameworks provide libraries for database access, templating frameworks and session management, and often promote code reuse. http://en.wikipedia.org/wiki/Web_application_frameworkFriday, 17 August 12 12
  13. 13. A web application framework is a software framework that is designed to support the development of dynamic websites,Web applications and Web services.The framework aims to alleviate the overhead associated with common activities performed in Web development. For example, many frameworks provide libraries for database access, templating frameworks and session management, and often promote code reuse. http://en.wikipedia.org/wiki/Web_application_frameworkFriday, 17 August 12 13
  14. 14. WordPress is web software you can use to create a beautiful website or blog.Friday, 17 August 12 14
  15. 15. WordPress is an Application Framework that happens to come with a default app called “Blog”.Friday, 17 August 12 15
  16. 16. WordPress is web software you can use to create a beautiful app, website or blog.Friday, 17 August 12 16
  17. 17. Application Frameworks are libraries of useful API’s & ClassesFriday, 17 August 12 17
  18. 18. Core API’s • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 18
  19. 19. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 19
  20. 20. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 20
  21. 21. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 21
  22. 22. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 22
  23. 23. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 23
  24. 24. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 24
  25. 25. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 25
  26. 26. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 26
  27. 27. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 27
  28. 28. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 28
  29. 29. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 29
  30. 30. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 30
  31. 31. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 31
  32. 32. • HTTP • XMLRPC • WP_User • WP_Rewrite • WPDB • WP_Cache & Transients • WP_Scripts • WP_Filesystem • admin-ajax.php • I18N • WP_Query • Security • Templating system • An Administration interfaceFriday, 17 August 12 32
  33. 33. What did I miss?Friday, 17 August 12 33
  34. 34. The thing that makes WordPress uniquely powerful?Friday, 17 August 12 34
  35. 35. add_filter();Friday, 17 August 12 35
  36. 36. 3rd Party API’s • TLC Transients • WP Thumb • Custom Meta Box API • WordPress ObjectsFriday, 17 August 12 36
  37. 37. • TLC Transients https://github.com/markjaquith/WP-TLC- Transients • WP Thumb • Custom Meta Box API • WordPress Objects • Term MetaFriday, 17 August 12 37
  38. 38. • TLC Transients • WP Thumb https://github.com/humanmade/WPThumb • Custom Meta Box API • WordPress Objects • Term MetaFriday, 17 August 12 38
  39. 39. • TLC Transients • WP Thumb • Custom Meta Box API https://github.com/humanmade/Customs • WordPress Objects • Term MetaFriday, 17 August 12 39
  40. 40. • TLC Transients • WP Thumb • Custom Meta Box API • WordPress Objects https://github.com/humanmade/WordPress- Objects • Term MetaFriday, 17 August 12 40
  41. 41. • TLC Transients • WP Thumb • Custom Meta Box API • WordPress Objects • Term Meta https://gist.github.com/2953813Friday, 17 August 12 41
  42. 42. All these API’s can be used without the “Blog” part of WordPressFriday, 17 August 12 42
  43. 43. Still need convincing? • Continuously improved. • Great backwards compatibility support. • Super easy to jump in and get started. • Can run on literally any server. • Widely tested, runs 16.7% of the web, some of the largest sites in the world.Friday, 17 August 12 43
  44. 44. Why Not • Some of the core API’s are old and nasty. • It doesn’t enforce a strict MVC structure. https://github.com/markjaquith/WordPress-Skeleton/ • People might think your not a real software engineer if your not using Ruby to build your web app.Friday, 17 August 12 44
  45. 45. WordPress powered Apps!Friday, 17 August 12 45
  46. 46. WP Remote Quick DemoFriday, 17 August 12 46
  47. 47. WordPress Knockout.js JSON Back-end Front-end JSON WordPress Plugin Client SiteFriday, 17 August 12 47
  48. 48. • Users • Sites • Site Meta • Core, Plugin and Theme updates • Groups • History • Backups • SettingsFriday, 17 August 12 48
  49. 49. Users • Standard WordPress subscriber level users. • Custom Login, Registration and Lost Password pages and Change Password pages.Friday, 17 August 12 49
  50. 50. Sites • Sites are stored as a custom post_type. • Each site has the post_author set to the user that owns the site. • The site status is set to private to signify that users sites are private to them. • Meta information about the site like home_url, admin_url etc. are stored in post_meta. As are lists of backups, history items and plugins and themes that need updating.Friday, 17 August 12 50
  51. 51. Site Groups • Site Group is a custom taxonomy • Each group is a new term in that taxonomy • Doesn’t matter if 2 users unknowingly use the same group as each user only sees sites that they own. • We use a custom term_meta table to store things like whether a group is collapsed or not.Friday, 17 August 12 51
  52. 52. Plugin • Installed on each of the users sites • We use the HTTP API to communicate between the back-end and Plugin. • The Plugin hooks into the Core, Plugin & Theme update API’s to do the actual updates.Friday, 17 August 12 52
  53. 53. Others • AMC Story Sync http://www.amctv.com/shows/breaking-bad/ story-sync • Bendy Words http://bendywords.com/demo-board/ • StudioPress http://www.woothemes.com/2011/07/ supportpress/Friday, 17 August 12 53
  54. 54. Done!Friday, 17 August 12 54
  55. 55. Thanks For ListeningFriday, 17 August 12 55
  56. 56. Ask Questions Now Or later on twitter @tomwillmotFriday, 17 August 12 56

×