Contributors
Why we contribute?
Contribution costs.
It takes time.
It takes freaki' time.
...but
You will learn...
...a lot!
My contribution story.
During the war...
No, no, this is not a Only fools and Horses!
WCEU 2013
@porreirinha approves
Favourite WordCamp
Well, second favourite...
Joost de Valk: The Victory of the Commons
Noel's talk was cool, too! :)
Contributor day
First "contributions"
If I could do it...
You can, too.
Everything counts.
Every contribution counts.
Thanks to @grapplerulrich
...and #WCCH 2014
I joined Theme Review Team
make.wordpress.org/themes
What is a Theme Review Team?
We are a group of volunteers who review and approve themes submitted to be included in the official WordPress Theme directory.
We are a group of volunteers who review and approve themes submitted to be included in the official WordPress Theme directory.
The Theme Review team maintains the official Theme Review Requirements, the Theme Unit Test Data, and the Theme Check Plugin.
We also engage and educate the WordPress Theme community regarding best practices for themes.
We also engage and educate the WordPress Theme community regarding best practices for themes.
Problem?
471 new tickets are waiting for review
928 in September
432 tickets are older than 2 weeks
September - 843
446 tickets are older than 1 week
September - 881
455 tickets are older than 3 days
September - 904
103 tickets are assigned.
September - 77
471 new tickets are waiting for review
I am here to engage :)
Rules are simple.
All must be met.
Become a Reviewer
WordPress.org account
Join Slack
Tuesdays, 18:00 UTC
Meetings are a great way to get involved
Subscribe to Make Blog
Set up your testing environment
Any WP environment will do
Recommendation: VVV
Varying Vagrant Vagrants
In combination with: VV
Variable Varying Vagrant Vagrants
vv create
vv delete site_name
Any WP environment will do
Even XAMPP
On Windows
Vista
Disclaimer: This was a joke
So there is no excuses!
Import the theme
unit test data
Set WP_DEBUG to 'true'
Install Developer plugin
Awesome tool!
Let's meet each other, first!
Name, w.org theme?
Key reviewers
Emil Uzelac: @emiluzelac
Chip Bennett: @chipbennett
Justin Tadlock: @greenshady
Tammie Lister: @karmatosed
Jose Castaneda: @jcastaneda
Ulrich Pogson: @grapplerulrich
Jenny Ragan: @djrmom
Carolina Nymark: @poena
Joe Dolson: @joedolson
David Kennedy: @davidakennedy
Sakin Shrestha: @sakinshrestha
Tuesday 18:00 UTC team chat.
Required
A theme must meet all of the following requirements to be included in the WordPress.org theme repository.
Themes that have 3 or more prefixing or security issues may be closed as not-approved.
However, theme authors may resubmit once they’ve corrected the issues.
Accessibility
If the theme has the tag ‘accessibility-ready’ then it needs to meet these requirements.
Code
No PHP or JS errors.
Have a valid DOCTYPE declaration and include language_attributes.
Escape everything: Data Validation
No removing or modifying non-presentational hooks
Must meet all Theme Check requirements
Provide a unique prefix for everything
Core Functionality and Features
Don’t include admin/feature pointers
No pay wall restricting any WordPress feature
No disabling of the admin toolbar
Use get_template_directory() rather than TEMPLATEPATH
Use get_stylesheet_directory() rather than STYLESHEETPATH
Use *_url() template tags, rather than bloginfo() equivalents
Avoid hard coding to modify content.
Example wp_title should be modified using a filter
Child theme ready!
Include comments_template()
Proper Tags, please
Use template tags and action/filter hooks properly
Presentation vs Functionality
Presentation vs Functionality
No CPT!
Non-design related functionality is not allowed
Documentation
Document everything!
Enough documentation should be provided
Language
All theme text strings are to be translatable
Include a text domain in style.css
Use a single unique theme slug
Can use any language for text, but only use the same one for all text
Licensing
Be 100% GPL and/or 100% GPL-compatible licensed
Declare copyright and license explicitly
Use the license and license uri header slugs to style.css.
Declare licenses of any resources included such as fonts or images
All code and design should be your own or legally yours
Cloning of designs is not acceptable
Naming
Theme names must not use: WordPress, Theme
With both an uppercase W and P
Options and Settings
Save options in a single array
Use sane defaults and don’t write default setting values to the database
Use proper capability rather than rely on a role
Use the Customizer for implementing theme options
Plugins
Don't include plugins.
A theme can recommend plugins but not include those plugins in the theme code
Screenshot
The screenshot should be of the actual theme as it appears with default options, not a logo or mockup
Privacy
Respect User privacy
Make any collection of user data “opt-in”, only! Disabled by default
No URL shorteners used in the theme
Selling, credits and links
If you are a theme shop you should be selling under GPL to be in the WordPress.org repo
There should only be one footer credit link (link to WordPress does not count)
Stylesheets and Scripts
No hard coding of script and style files
No minification of scripts or files unless provide original files
Required to use core-bundled scripts rather than including their own version of that script
Include all scripts and resources it uses rather than hot-linking. The exception to this is Google Fonts.
Templates
Custom template files should be called using get_template_part() or locate_template()
Standard templates should be called by their respective function
Display the correct content according to the front page setting
It’s worth noting we are working to automate a lot of the above requirements.
Be polite.
Be respectful.
Let's review!
Introduction to Theme Review
By Milan Ivanović
Introduction to Theme Review
- 1,870