How to write your first WordPress plugin, and why you should.

By Joe Shockey, Software Engineer

Published: October 24, 2023

What is a WordPress plugin?

If you are a WordPress user looking to add custom features or functionalities to your website, learning how to write your own WordPress plugin can be a game-changer. WordPress plugins are essential tools that allow users to extend the functionality of their websites without altering the core code. They are usually theme-agnostic but can be specific to certain themes. Many plugins are free to use, and some require licensing. 

In this guide, we will walk you through the process of creating your first WordPress plugin and explore the benefits of doing so.

Why should you write your own plugin?

A plugin is a solution to a specific problem. For example, you may want to add an image carousel to your website. You could choose from many free and commercial plugins available, but you may not be able to find one that meets your specific needs.

Let’s say you built an image carousel for a specific website a while ago, but now you want to use it for another project. You pull the files and discover they are all over the place. There are hooks in the functions.php file, JavaScript in the /js/ directory, navigation images in the /img/ directory, php files in the /inc/ directory, node files, and build files … you can see where this is going. Extracting what you need can be a real headache.

Now imagine all those files are in one place. Easy to debug, easy to move to another project, and easy to disable if no longer needed. Your code is modular, easier to maintain – and it is portable!

Additional benefits include:

Customization and Flexibility

By creating your own WordPress plugin, you have the freedom to customize your website in any way you desire. You can add unique features tailored to your specific needs without relying solely on pre-existing plugins.

Learning and Skill Development

Writing a WordPress plugin is an excellent way to enhance your coding skills. It allows you to better understand WordPress architecture and PHP programming, which can be valuable for future projects.

Contributing and Sharing with the Community

By sharing your plugin with the WordPress community, you contribute to the platform’s growth and help other users solve their specific problems. Your plugin might just be the solution someone else has been looking for.

Potential for Monetization

If your plugin gains popularity, you might consider monetizing it. Whether through premium versions, add-ons, or support services, your plugin could become a potential source of passive income.

Getting Started: Understanding the Basics

Before diving into the coding process, it is important to understand the basic structure of a WordPress plugin. A WordPress plugin is essentially a PHP file set that integrates into your WordPress site. They may include custom scripts, PHP and JavaScript libraries, CSS, HTML, images, or whatever tools and technologies you need to accomplish your goal.

Writing Your First WordPress Plugin

Step 1: Setting Up Your Development Environment

The first step is to set up your local development environment. Ensure you have a code editor installed on your system, such as Visual Studio Code or Sublime Text. Additionally, you’ll need a local server stack like MAMP, WAMP, or XAMP to create a local WordPress installation. I use Docker to spin up a WordPress container and Visual Studio Code for editing (see my earlier post on some of my favorite VS Code extensions).

Step 2: Creating the Plugin File

Start by creating a new folder in your WordPress installation’s ‘/wp-content/plugins/’ directory. Inside this folder, create a PHP file, which will serve as the main file of your plugin. This file should contain essential plugin information, such as the plugin name, version, author and a brief description of what the plugin does.

Let’s create a plugin that creates a shortcode that says “Hello World.” Start by creating a directory called “hello-world” and adding a PHP file called hello-world.php:


Open my-hello-world.php and add:


Plugin Name: Hello World Plugin
Description: A simple plugin that adds a shortcode to display "Hello World."

This will add a new plugin to your WordPress admin called “My Hello World Plugin.” There are many other header items you can add to further identify your plugin. You can see them here. They are especially useful if you plan to share or monetize your plugin.

Of course, your plugin doesn’t do anything yet. You will need to add some functionality.

Step 3: Adding Functionality

Now, you can add custom functionalities to your plugin. Whether you want to create a shortcode, add a widget, or modify the behavior of a specific WordPress feature, you can use various WordPress hooks and functions to achieve your desired results. 

For our “Hello World” plugin, let’s add a function to return “Hello World!” and a WordPress hook to register a shortcode:

// Function to handle the shortcode
function hello_world_shortcode() {
    return "Hello World!";

// Registering the shortcode
function register_hello_world_shortcode() {
    add_shortcode('hello_world', 'hello_world_shortcode');
add_action('init', 'register_hello_world_shortcode');

Step 4: Testing Your Plugin

It is crucial to test your plugin thoroughly to ensure that it functions as intended. Activate the plugin from the WordPress admin dashboard and test all the features to identify and fix any potential bugs or issues.

After activating our “My Hello World” plugin, open a page on our site and add the shortcode:


When you preview the page, you should see “Hello World!” Give yourself a pat on the back – you have just created your first WordPress plugin!

Step 5: Publishing Your Plugin

Once you are confident that your plugin is working flawlessly, you can consider publishing it to the official WordPress Plugin Directory. This will allow other WordPress users to benefit from your creation and contribute to the WordPress community.


Creating your first WordPress plugin can be a rewarding and enlightening experience. It allows you to take full control of your WordPress website while contributing to the vast WordPress community. So, why not dive in and start writing your own plugin today?

0 0 votes
Article Rating
Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x