How to Create a WordPress Plugin: A Beginner’s Step-by-Step Guide

Introduction

WordPress plugins are one of the most powerful ways to extend the functionality of your website. Whether you want to add custom features, improve performance, or build a plugin to sell, learning how to create a WordPress plugin is an essential skill for every developer.

In this guide, you’ll learn how to create a WordPress plugin from scratch, understand the basic file structure, and build your first working plugin.


What Is a WordPress Plugin?

A WordPress plugin is a collection of PHP files that add new features or functionality to your WordPress website without modifying the WordPress core.

Plugins can help you:

  • Add custom forms

  • Create WooCommerce extensions

  • Display reviews and ratings

  • Improve SEO

  • Add security features

  • Build custom admin pages

  • Integrate third-party APIs


Prerequisites

Before creating a plugin, you should have basic knowledge of:

  • PHP

  • HTML

  • CSS

  • JavaScript (optional but recommended)

  • WordPress basics

You’ll also need:

  • A local WordPress installation

  • A code editor (VS Code is recommended)


Step 1: Create Your Plugin Folder

Navigate to:

wp-content/plugins/

Create a new folder:

my-first-plugin

Step 2: Create the Main Plugin File

Inside the folder, create:

my-first-plugin.php

Add the following code:

<?php
/*
Plugin Name: My First Plugin
Plugin URI: https://example.com
Description: My first custom WordPress plugin.
Version: 1.0
Author: Your Name
Author URI: https://example.com
License: GPL2
Text Domain: my-first-plugin
*/

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

This information tells WordPress how to identify your plugin.


Step 3: Activate the Plugin

Go to:

WordPress Dashboard → Plugins

You’ll see:

My First Plugin

Click Activate.

Congratulations! You’ve created your first WordPress plugin.


Step 4: Add a Simple Feature

Let’s display a message in the website footer.

function my_first_plugin_footer_message() {
    echo '<p style="text-align:center;">Thank you for visiting our website!</p>';
}

add_action('wp_footer', 'my_first_plugin_footer_message');

Refresh your website, and you’ll see the message at the bottom of every page.


Step 5: Organize Your Plugin

As your plugin grows, organize it like this:

my-first-plugin/
│
├── assets/
│   ├── css/
│   ├── js/
│   └── images/
│
├── includes/
│   ├── admin.php
│   ├── frontend.php
│   └── functions.php
│
├── languages/
│
├── templates/
│
└── my-first-plugin.php

A clean structure makes maintenance much easier.


Step 6: Load CSS and JavaScript

Use WordPress enqueue functions.

function my_plugin_assets() {

    wp_enqueue_style(
        'my-plugin-style',
        plugin_dir_url(__FILE__) . 'assets/css/style.css'
    );

    wp_enqueue_script(
        'my-plugin-script',
        plugin_dir_url(__FILE__) . 'assets/js/script.js',
        array('jquery'),
        '1.0',
        true
    );

}

add_action('wp_enqueue_scripts', 'my_plugin_assets');

Never hardcode CSS or JavaScript directly into your plugin.


Step 7: Create a Shortcode

Shortcodes allow users to display plugin content anywhere.

function my_plugin_shortcode() {
    return '<h2>Hello from My Plugin!</h2>';
}

add_shortcode('myplugin', 'my_plugin_shortcode');

Now use:

[myplugin]

inside any page or post.


Step 8: Add an Admin Menu

Create a settings page.

function my_plugin_menu() {

    add_menu_page(
        'My Plugin',
        'My Plugin',
        'manage_options',
        'my-plugin',
        'my_plugin_page'
    );

}

add_action('admin_menu', 'my_plugin_menu');

function my_plugin_page() {
    echo '<h1>Welcome to My Plugin Settings</h1>';
}

You’ll now have a new menu in the WordPress dashboard.


Step 9: Follow WordPress Coding Standards

For a professional plugin:

  • Sanitize user input

  • Escape output

  • Use WordPress hooks and filters

  • Avoid editing WordPress core files

  • Prefix your functions

  • Use nonces for forms

  • Write secure SQL queries

  • Keep your code modular


Step 10: Test Your Plugin

Before publishing:

  • Test on the latest WordPress version

  • Test with multiple themes

  • Test on WooCommerce (if applicable)

  • Enable WP_DEBUG

  • Check for PHP warnings

  • Verify responsiveness

Testing helps ensure a stable experience for users.


Best Practices

  • Use meaningful function names.

  • Keep files organized.

  • Document your code with comments.

  • Make your plugin translation-ready.

  • Optimize performance.

  • Follow WordPress security guidelines.

  • Use Git for version control.


Common Mistakes to Avoid

  • Editing WordPress core files

  • Forgetting to sanitize user input

  • Loading unnecessary scripts

  • Using global variables excessively

  • Ignoring plugin compatibility

  • Not testing before release

  • Using duplicate function names


Useful WordPress Functions

Some functions you’ll use frequently include:

  • add_action()

  • add_filter()

  • register_activation_hook()

  • register_deactivation_hook()

  • add_shortcode()

  • wp_enqueue_script()

  • wp_enqueue_style()

  • plugin_dir_path()

  • plugin_dir_url()

  • admin_url()


Why Build Your Own Plugin?

Creating your own plugin offers several benefits:

  • Customize your website exactly as needed

  • Reuse functionality across multiple sites

  • Improve development skills

  • Create premium plugins to sell

  • Contribute to the WordPress community

  • Build scalable and maintainable solutions


Conclusion

Creating a WordPress plugin may seem challenging at first, but once you understand the basics, it becomes a rewarding skill. Start with a simple plugin, learn how WordPress hooks and APIs work, and gradually build more advanced features.

Whether you’re creating a small utility plugin or a premium WooCommerce extension, following WordPress coding standards and best practices will help you build secure, efficient, and user-friendly plugins.

Happy coding!