Top Banner
Building better WordPress applications PBWEB.CO.UK @PHILL_BROWN
22

Building better WordPress applications

Jan 25, 2015

Download

Technology

Phill Brown

10 tips to improve your WordPress themes and plugins
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Building better WordPress applications

Building better WordPress applications

PBWEB.CO.UK

@PHILL_BROWN

Page 2: Building better WordPress applications

Problems with WordPress applications• Business logic in themes

• Repeated code

• Tight coupling

• Portability

Page 3: Building better WordPress applications

Rule #1Do not write your application in

functions.php

Page 4: Building better WordPress applications

Decoupling plugins and themesLogic Templates

Templates

Plugin

Theme

Page 5: Building better WordPress applications

Rule #2Every action should be hooked

Page 6: Building better WordPress applications

function my_plugin_start() {// Fire up application

}

// Wrongmy_plugin_start();

// Rightadd_action( ‘plugins_loaded’, ‘my_plugin_start’ );

Page 7: Building better WordPress applications

Rule #3Use WordPress

Page 8: Building better WordPress applications

Core checklist• Custom post types and post meta

• Roles, capabilities and user meta

• Options and transients

• Scheduler

• Remote HTTP

Page 9: Building better WordPress applications

Rule #4Use plugin dependencies

Page 10: Building better WordPress applications

• Scribu’s Plugin Dependencies

• if ( ! class_exists( ‘plugin_x’ ) ) {wp_die( ‘Plugin Y requires plugin x’ );

}

Page 11: Building better WordPress applications

Rule #5Standardise code

Page 12: Building better WordPress applications

• WordPress coding standards:http://codex.wordpress.org/WordPress_Coding_Standards

• PHPDochttp://en.wikipedia.org/wiki/PHPDoc

Page 13: Building better WordPress applications

Rule #6Choose your PHP version

Page 14: Building better WordPress applications

• WordPress core (v3.0+) – 5.1.1

• 5.2 – DateTime

• 5.3 – Late static binding, closures, namespacing

• 5.4 - Traits

Page 15: Building better WordPress applications

Rule #7Avoid global scoping

Page 16: Building better WordPress applications

add_action( ‘init’, function() {// do something 

} );

Closures

Page 17: Building better WordPress applications

namespace wordpress\my_plugin;

class Post {} 

Namespacing

class My_Plugin_Post {} 

PHP 5.3

PHP 5.1

Page 18: Building better WordPress applications

Rule #8Activation hooks

Page 19: Building better WordPress applications

register_activation_hook( __FILE__, ‘my_plugin_activate’ );

function my_plugin_activate() {// Create tables, roles, capabilities

}

register_uninstall_hook( __FILE__, ‘my_plugin_uninstall’ );

function my_plugin_uninstall() {// Cleanup data

}

Page 20: Building better WordPress applications

Rule #9define( ‘WP_DEBUG’, true );

Page 21: Building better WordPress applications

Rule #10Release your code

Page 22: Building better WordPress applications

Questions?

@PHILL_BROWN

[email protected]