Best practices for WordPress plugin development

With the release of WP3, WordPress has become a serious contender on the CMS market. The WordPress plugin system allows you to add functionality to WordPress in a snap and turn it into much more than ‘just a blogging platform’.
Learn how to develop for WordPress like a pro and take WordPress to the next level.

Questions and Answers

Who’s the target audience for this tutorial?

Anyone who intends to start writing – or has written – plugins for WordPress. This includes those, who would like to join the development team of an existing plugin and want to improve current code quality and/or contribute quality code.

And even though the tutorial is about plugin development, if you are a theme developer or want to become one, you will also benefit from this tutorial.

How experienced do I need to be?

It is expected that you are an experienced WordPress user. This means that you are familiar with both the frontend and backend interface, you sort of know how WordPress works in general terms, you know what post types are, you know what a widget is, you’ve added some code snippets to a functions.php file etc.
You do *not* need to have developed a plugin previously.

This tutorial is aimed at PHP developers, so it is also presumed you are familiar with programming in PHP. You don’t have to be a Ninja, God, Wizard or other outer worldly creature, but knowing how to use PHP 5 would be very helpful 😉

Some knowledge of HTML, CSS, javascript and jQuery will also come in handy.

Which version of software / php etc will you be covering?

We’ll be looking to write plugins to serve WordPress 3.3+.

FYI: The current version of WP is 3.5.2 (at the time of writing, July 2013), though WP 3.6 is around the corner – currently in RC1 state and probably released by the time PHPNW comes round.

Since WordPress 3.2, the minimum requirements are PHP 5.2.4+ and MySql 5.0.15+, so we’ll be looking at writing code which is compliant with this.

Do I need to bring a laptop?

It’s definitely not necessary to bring a laptop, but feel free to bring one if you like.

Do I need to install or set-up any specific software prior to the day, in order to get the most out of the day?

If you *do* decide to bring your laptop and you want to be able to follow everything I’ll show you, you’ll get the most out of it if you make sure you have the below listed software installed.
(And if you don’t bring your laptop, this might just be a handy reference list for your own local WordPress development environment anyway.)

Since time is limited for the tutorials, there will unfortunately not be any time to help people set up their own local testing environment for WordPress development.

  • A WAMP/LAMP stack installed, preferably with several PHP versions
  • Local install of the latest stable release of WordPress (conference wifi can so easily be overloaded 😉 )
  • Optionally local installs of a few other versions of WordPress for testing purposes
  • Your preferred IDE

And as the code used during the Tutorial will be posted on GitHub. It might be a good idea to have Git setup on your laptop and have an activated GitHub account.

You may also want to make sure you have some or all of the following plugins installed:

Oh… also useful: have a working PHP CodeSniffer setup with the WordPress Coding standards

What else will I get?

Refreshments and lunch, a personalised attendance certificate and a conference T-shirt!

Juliette Reinders Folmer

Juliette Reinders Folmer

Best practices for WordPress plugin development

Juliette is an all round consultant and web-developer who tries not be a geek. Having started with client-side web development in 2000, she furtively tried to avoid server-side web until she was forced to learn PHP at knife-point in 2002 and found herself hooked quite quickly. As she herself would put it ‘It is more fun than Sudoku, and just as challenging to get it right’. She actively contributes to a number of open source projects and has published several articles.
Juliette is self-employed and based in the Netherlands.