doing_it_right() with Wordpress
Ryan DuffHarrisburg WordPress Meetup
February 19th, 2013
Why do it right
• Save yourself time
• Save others time
• Save your clients money
• Save everybody from headaches
Ways to do it right
• Learn to organize your code
•... document your code
• ... optimize your code
• Don’t reinvent the wheel
• Action Hooks and Filters
• Other very bad things to avoid
First things first
• Use the debug bar plugin
define(‘WP_DEBUG’, true);define(‘WP_DEBUG_DISPLAY, false);define(‘SAVEQUERIES’, true);
Organize your code
• What goes in a plugin?
• What goes in a theme?
• Utilize mu-plugins/
Organize your code
http://codex.wordpress.org/Template_Hierarchy
Document your code
/** * Simple and uniform HTTP request API. * * Standardizes the HTTP requests for WordPress. Handles cookies, gzip encoding and decoding, chunk * decoding, if HTTP 1.1 and various other difficult HTTP protocol implementations. * * @link http://trac.wordpress.org/ticket/4779 HTTP API Proposal * * @package WordPress * @subpackage HTTP * @since 2.7.0 */
Optimize your code
• Cache
• Get rid of rotten database queries
Optimize your code
set_transient( $transient, $value, $expiration );
get_transient( $transient );
delete_transient( $transient );
Optimize your code
• Make sure the code you’re expecting matches
• Use $wpdb class in the correct cases, WP_Query otherwise
• Sanitize everything http://codex.wordpress.org/Data_Validation
Don’t reinvent the wheel
• Clever code is not clever.
• Use built in APIs and methods
WordPress APIs
Action hooks and filters
• Hooks are places to DO things
• Filters are ways to CHANGE things
More things not to do
• Don’t downgrade jQuery
• Don’t create unnecessary settings
• Don’t forget to update
Secure code
• esc_html()
• esc_attr()
• esc_url()
• $wpdb->prepare()
http://codex.wordpress.org/Data_Validation
How to learn more
• Read the code and contribute http://core.trac.wordpress.org
• Ask questions in #wordpress on freenode
Questions?
Ryan DuffFusionized Technologyhttp://fusionized.com
@ryancduff