Voiceify.io

Contact

About

Wordpress Plugin Development Environment

Getting setup for wordpress plugin development

9/16/2019

...

3 min read

tldr;If you don't want to setup MySQL and a php server to develop WordPress plugins, you can use docker-compose with some volumes instead.

Setup Docker

I use a package manager called chocolatey to install/uninstall software when I can. If you have chocolatey setup, just run the following command to install docker:

choco install docker-desktop

Installing Docker
Installing Docker

Kitematic provides a visual interface to docker, so if you don’t care much for the command line, I’d recommend installing that as well:

choco install docker-kitematic

Starting Docker

After the installation has finished, log out then back in. Run docker desktop by pressing the windows key and searching for docker desktop. Once docker is ready, you’ll see the icon in the system tray stop animating and a login window will appear.

Docker in System Tray
Docker in System Tray

The last step is to make sure docker is working. Open a new powershell window and run the following command:

docker run hello-world

You should see output indicating that docker is running.

Docker Hello World

Run WordPress in Docker

Now that docker is setup on your system we can start WordPress. Since WordPress requires an instance of MySql running to store all of its data, we need to run two containers and connect them. We’ll also want their data to persist if we stop the containers and restart them later. To accomplish this we create a docker compose file, with volumes for each container.

Save the following file as docker-compose.yml.

version: "3.3"

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    ports:
      - "3306:3306"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wordpress:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}
  wordpress: {}

Open a shell in the directory where you saved the docker compose file and run docker-compose up -d. After a few minutes you’ll have WordPress running on your machine.

Running WordPress Install

Before you can start writing plugins for WordPress, you need to run through the setup pages on your new server. Browse to http://localhost:8000/wp-admin/install.php and follow the instructions.

Creating a Plug-in

To create a plugin, you need to add a folder in WordPress’ plugins directory. To find the root directory, open kitematic by clicking on the docker icon in the system tray and selecting kitematic from the menu.

Kitematic in the Docker Menu
Kitematic in the Docker Menu

Now select the WordPress container on the left side of the window, and click /var/www/html under the list of volumes on the right side.

Selecting the WordPress Volume
Selecting the WordPress Volume

This will open Windows Explorer with the html folder selected. Open it, then browse to wp-content->plugins. Create a new folder called first-plugin then open it. Create a file called index.php inside the new folder and paste the following code into it:

<?php
/**
* Plugin Name: First Plugin
* Plugin URI: https://voiceify.io
* Description: Your very first plugin!
* Version: 1.0
* Author: Ben Force
* Author URI: https://twitter.com/theBenForce
* License: GPLv2 or later
**/

Save the file and browse to http://localhost:8000/wp-admin/plugins.php, you should your plugin in the list.


I hope this tutorial has given you a good starting point that’s easier than installing a php server and mysql. Let me know if you have any suggestions or questions.