Developing client themes for theme review for WordCamp Edmonton
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Developing client themes for theme review for WordCamp Edmonton

  • 945 views
Uploaded on

What is the WordPress.org Theme Review process and why should you be using it for your client theme development.

What is the WordPress.org Theme Review process and why should you be using it for your client theme development.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
945
On Slideshare
896
From Embeds
49
Number of Embeds
2

Actions

Shares
Downloads
8
Comments
0
Likes
1

Embeds 49

http://wpthemetutorial.com 47
http://feeds.feedburner.com 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. Developing Client Themes for Theme Review WordCamp YEG 2011 http://get10up.com @curtismchale
  • 2. Topics
  • 3. Topics• Theme Review
  • 4. Topics• Theme Review ➡ What is a Theme Review
  • 5. Topics• Theme Review ➡ What is a Theme Review ➡ How do you do one
  • 6. Topics• Theme Review ➡ What is a Theme Review ➡ How do you do one• Client Themes
  • 7. Topics• Theme Review ➡ What is a Theme Review ➡ How do you do one• Client Themes ➡ Why use the Theme Review Process?
  • 8. Topics• Theme Review ➡ What is a Theme Review ➡ How do you do one• Client Themes ➡ Why use the Theme Review Process? ➡ How do we differ?
  • 9. Topics• Theme Review ➡ What is a Theme Review ➡ How do you do one• Client Themes ➡ Why use the Theme Review Process? ➡ How do we differ? ➡ Taking it a Step Further
  • 10. Theme Review
  • 11. Theme Review
  • 12. Theme Review• History
  • 13. Theme Review• History ➡ Theme Reviews were started in June 2010
  • 14. Theme Review• History ➡ Theme Reviews were started in June 2010 ➡ What was it like before June 2010?
  • 15. Theme Review• History ➡ Theme Reviews were started in June 2010 ➡ What was it like before June 2010? ➡ buggy themes that didn’t function well and were ugly
  • 16. Theme Review
  • 17. Theme Review• Malicious Code or link spam
  • 18. Theme Review• Malicious Code or link spam• Bogus attribution link requirements
  • 19. Theme Review• Malicious Code or link spam• Bogus attribution link requirements• No encrypted code
  • 20. Theme Review• Malicious Code or link spam• Bogus attribution link requirements• No encrypted code• 100% GPL or GPL compliant code
  • 21. Theme Review• Malicious Code or link spam• Bogus attribution link requirements• No encrypted code• 100% GPL or GPL compliant code ➡ Apache License 2.0, Artistic License 2.0, Berkely Database License
  • 22. Theme Review• Malicious Code or link spam• Bogus attribution link requirements• No encrypted code• 100% GPL or GPL compliant code ➡ Apache License 2.0, Artistic License 2.0, Berkely Database License ➡ http://www.gnu.org/licenses/license-list.html
  • 23. Theme Review• Malicious Code or link spam• Bogus attribution link requirements• No encrypted code• 100% GPL or GPL compliant code ➡ Apache License 2.0, Artistic License 2.0, Berkely Database License ➡ http://www.gnu.org/licenses/license-list.html• WordPress best practices
  • 24. Setting up for a Theme Review
  • 25. WordPress Installs
  • 26. WordPress Installs• Current version of WordPress
  • 27. WordPress Installs• Current version of WordPress• next beta/alpha version of WordPress
  • 28. WordPress Installs• Current version of WordPress• next beta/alpha version of WordPress ➡ check for future compliance
  • 29. WordPress Installs• Current version of WordPress• next beta/alpha version of WordPress ➡ check for future compliance ➡ wp_editor function
  • 30. WordPress Installs• Current version of WordPress• next beta/alpha version of WordPress ➡ check for future compliance ➡ wp_editor function• set WP_DEBUG to true
  • 31. WordPress Plugins
  • 32. WordPress Plugins• Theme Check
  • 33. WordPress Plugins• Theme Check ➡ runs the same checks the theme uploader does
  • 34. WordPress Plugins• Theme Check ➡ runs the same checks the theme uploader does ➡ gives you a place to start your review with
  • 35. WordPress Plugins• Theme Check ➡ runs the same checks the theme uploader does ➡ gives you a place to start your review with ➡ any items that are ‘required’ are cause for non-approval of theme
  • 36. WordPress Plugins
  • 37. WordPress Plugins• Log Deprecated Notices
  • 38. WordPress Plugins
  • 39. WordPress Plugins• Debug Bar
  • 40. WordPress Plugins• Debug Bar ➡ adds debug menu to the admin bar
  • 41. WordPress Plugins• Debug Bar ➡ adds debug menu to the admin bar ➡ shows queries, debug notices, cache
  • 42. WordPress Plugins• Debug Bar ➡ adds debug menu to the admin bar ➡ shows queries, debug notices, cache ➡ add Debug Bar Extender for even more
  • 43. WordPress Plugins• FixPress ➡ fixes the WordPress galleries for valid HTML and styles ➡ cleans up the comments for XHTML validation
  • 44. Testing Data
  • 45. Testing Data• Theme Unit Test
  • 46. Testing Data• Theme Unit Test ➡ posts with stupid long titles
  • 47. Testing Data• Theme Unit Test ➡ posts with stupid long titles ➡ images of all alignments with and without caption
  • 48. Testing Data• Theme Unit Test ➡ posts with stupid long titles ➡ images of all alignments with and without caption ➡ post formats
  • 49. Testing Data• Theme Unit Test ➡ posts with stupid long titles ➡ images of all alignments with and without caption ➡ post formats ➡ nested comments
  • 50. Testing Data• Theme Unit Test ➡ posts with stupid long titles ➡ images of all alignments with and without caption ➡ post formats ➡ nested comments ➡ ...
  • 51. What are we looking for exactly?
  • 52. Malicious Code
  • 53. Malicious Code• no use of base_64 in themes
  • 54. Malicious Code• no use of base_64 in themes• no exploits of any kind
  • 55. Malicious Code• no use of base_64 in themes• no exploits of any kind• sadly themes are still submitted
  • 56. Link Spam
  • 57. Link Spam• SEO links in footer, headers....
  • 58. HTML/XHTML/CSS
  • 59. HTML/XHTML/CSS• theme should validate
  • 60. HTML/XHTML/CSS• theme should validate• browser prefixing is okay
  • 61. HTML/XHTML/CSS• theme should validate• browser prefixing is okay• really just covering high level stuff
  • 62. HTML/XHTML/CSS• theme should validate• browser prefixing is okay• really just covering high level stuff• FixPress
  • 63. PHP/JS Errors
  • 64. PHP/JS Errors• clean an quite
  • 65. PHP/JS Errors• clean an quite
  • 66. Deprecated Functions
  • 67. Deprecated Functions• we see this lots
  • 68. Deprecated Functions• we see this lots• lots of online tutorials use old bad practices
  • 69. Deprecated Functions• we see this lots• lots of online tutorials use old bad practices
  • 70. Using the WordPress Way
  • 71. Using the WordPress Way• using the built in WordPress functionality
  • 72. Using the WordPress Way• using the built in WordPress functionality ➡ post formats
  • 73. Using the WordPress Way• using the built in WordPress functionality ➡ post formats ➡ post thumbnails
  • 74. Using the WordPress Way• using the built in WordPress functionality ➡ post formats ➡ post thumbnails ➡ changing header images
  • 75. Using the WordPress Way• using the built in WordPress functionality ➡ post formats ➡ post thumbnails ➡ changing header images ➡ wp_editor
  • 76. Using the WordPress Way• using the built in WordPress functionality ➡ post formats ➡ post thumbnails ➡ changing header images ➡ wp_editor ➡ usually move from recommendation to required over a version
  • 77. Prefixing
  • 78. Prefixing• properly prefixing functions
  • 79. Prefixing• properly prefixing functions ➡ another tutorial mess
  • 80. Prefixing• properly prefixing functions ➡ another tutorial mess ➡ prevent conflicts with other code in child themes or plugins
  • 81. Prefixing• properly prefixing functions ➡ another tutorial mess ➡ prevent conflicts with other code in child themes or plugins ➡ twenty_ten is a common failed prefix
  • 82. Prefixing• properly prefixing functions ➡ another tutorial mess ➡ prevent conflicts with other code in child themes or plugins ➡ twenty_ten is a common failed prefix• Franks Photo
  • 83. Prefixing• properly prefixing functions ➡ another tutorial mess ➡ prevent conflicts with other code in child themes or plugins ➡ twenty_ten is a common failed prefix• Franks Photo ➡ sfn_frph_function_name(){}
  • 84. Text Domain
  • 85. Text Domain• internationalization
  • 86. Text Domain• internationalization• again lots of themes use ‘twentyten’ as their text domain
  • 87. Documentation
  • 88. Documentation• NOT how to use WordPress or core WordPress functionality
  • 89. Documentation• NOT how to use WordPress or core WordPress functionality• is there anything unique that may need more explanation?
  • 90. Documentation• NOT how to use WordPress or core WordPress functionality• is there anything unique that may need more explanation? ➡ Install WP Cycle to get the gallery we show in the preview
  • 91. Frontend Display
  • 92. Frontend Display• NOT an aesthetic judgement
  • 93. Frontend Display• NOT an aesthetic judgement ➡ we don’t care what it looks like
  • 94. Frontend Display• NOT an aesthetic judgement ➡ we don’t care what it looks like• needs to support standard content in the Theme Unit Test data
  • 95. Frontend Display• NOT an aesthetic judgement ➡ we don’t care what it looks like• needs to support standard content in the Theme Unit Test data ➡ stupid long titles
  • 96. Frontend Display• NOT an aesthetic judgement ➡ we don’t care what it looks like• needs to support standard content in the Theme Unit Test data ➡ stupid long titles ➡ no titles
  • 97. Frontend Display• NOT an aesthetic judgement ➡ we don’t care what it looks like• needs to support standard content in the Theme Unit Test data ➡ stupid long titles ➡ no titles ➡ huge site names
  • 98. Child Theme Readiness
  • 99. Child Theme Readiness• Themes should use the following as appropriate
  • 100. Child Theme Readiness• Themes should use the following as appropriate ➡ get_template_part
  • 101. Child Theme Readiness• Themes should use the following as appropriate ➡ get_template_part ➡ locate_template
  • 102. Child Theme Readiness• Themes should use the following as appropriate ➡ get_template_part ➡ locate_template ➡ get_stylesheet_uri/get_stylesheet_directory
  • 103. Child Theme Readiness• Themes should use the following as appropriate ➡ get_template_part ➡ locate_template ➡ get_stylesheet_uri/get_stylesheet_directory ➡ get_template_uri/get_template_directory
  • 104. Security
  • 105. Security• escape user input
  • 106. Security• escape user input ➡ esc_attr, esc_html, wp_kses, esc_textarea....
  • 107. Client Themes
  • 108. Clients
  • 109. Clients• clients break things
  • 110. Clients• clients break things• Theme Review helps make sure
  • 111. Clients• clients break things• Theme Review helps make sure ➡ we use current WordPress best practices
  • 112. Clients• clients break things• Theme Review helps make sure ➡ we use current WordPress best practices ➡ our themes are secure
  • 113. Clients• clients break things• Theme Review helps make sure ➡ we use current WordPress best practices ➡ our themes are secure ➡ all possible data types display properly
  • 114. Deviate from Review
  • 115. Deviate from Review• text domain and internationalization
  • 116. Deviate from Review• text domain and internationalization• .git/.svn directories
  • 117. Deviate from Review• text domain and internationalization• .git/.svn directories• tags
  • 118. Going Further
  • 119. Inline Documentation
  • 120. Inline Documentation• page template documentation
  • 121. Inline Documentation• page template documentation
  • 122. Inline Documentation
  • 123. Inline Documentation• Function level PHP docblock
  • 124. Inline Documentation• Function level PHP docblock
  • 125. Plugin Territory
  • 126. Plugin Territory• Does this functionality need to live beyond this specific site design?
  • 127. Plugin Territory• Does this functionality need to live beyond this specific site design? ➡ CPT’s like a portfolio on your site
  • 128. Plugin Territory• Does this functionality need to live beyond this specific site design? ➡ CPT’s like a portfolio on your site ➡ taxonomies, slideshows, google analytics...
  • 129. Resources• http://codex.wordpress.org/Theme_Review• http://www.chipbennett.net/2011/04/20/a-guide-to-reviewing-themes-for-the-wordpress-theme- repository/• http://codex.wordpress.org/Data_Validation• http://wordpress.org/extend/plugins/debug-bar-extender/• http://wordpress.org/extend/plugins/debug-bar/• http://wordpress.org/extend/plugins/fixpress/• http://wordpress.org/extend/plugins/log-deprecated-notices/• http://wordpress.org/extend/plugins/wordpress-beta-tester/
  • 130. Developing Client Themes for Theme Review WordCamp YEG 2011 http://get10up.com @curtismchale