TechnologyWebsite BuildersWordPress Hosting

How to Create a Simple WordPress Plugin

WordPress is a darling of many, and rightfully so. It’s extremely straightforward to use, free (or open-source), versatile, and the perfect half, fairly extensible. Thanks to plugins, you possibly can lengthen WordPress to add virtually any performance you keep in mind.

Should you’re the right newbie, WordPress plugins are similar to the apps in your telephone. Your telephone works nice as it’s, however you possibly can add extra performance utilizing apps. The identical applies to the WordPress content material administration system (CMS).

The WordPress platform is already highly effective, however you possibly can obtain rather more utilizing plugins. As an example, WordPress plugins permit you to add additional performance corresponding to e-commerce, search engine optimization, spam safety, superior types, social media, higher safety, dwell chat, visible web page constructing, and rather more.

There are literally thousands of free and premium WordPress plugins on the market. The official WordPress plugin repository alone has over 59,000 free plugins on the time of writing! Different marketplaces, corresponding to CodeCanyon, give you hundreds of premium WordPress plugins.


That goes to say that there’s probably a plugin for practically any characteristic you want to add to your WordPress web site. Nonetheless, at occasions, you may want one thing unavailable from the aforementioned plugin sources. In that case, you may want to create a WordPress plugin from scratch or modify (or fork) an present plugin.

And in at present’s publish, we’ll present you ways to write a easy WordPress plugin, which is sweet if you need to create one thing easy or dive headlong into plugin improvement. With that preamble, allow us to begin as a result of there’s a ton of stuff to cowl.

Writing a Simple WordPress Plugin: The Fundamentals

Earlier than we get to the enjoyable half, there are a couple of staple items you need to know. As a newbie, you may assume creating WordPress plugins is a powerful nut to crack. Effectively, not likely. Anyone can learn the way to write a plugin whether or not you may have a diploma in pc science or not.


On the similar time, some PHP coding data will go a good distance in the event you plan to write extra plugins sooner or later. That’s as a result of WordPress plugins are coded within the PHP programming language. With this information, you’ll higher perceive how PHP functions work, which makes your work a lot simpler. Nonetheless, it’s straightforward stuff.

Additionally, relying on the options you want, your plugin may include only one file or a number of information together with CSS stylesheets, JavaScript scripts, and media information. Lastly, it’s essential to familiarize your self with WordPress Coding Standards and best practices to keep on the secure facet.

Relaxation straightforward as a result of at present we received’t enterprise into the advanced stuff. I’ll present you ways to write a easy plugin and share a couple of instruments and sources that may make your work a breeze. Are you excited but? I positive do hope so 🙂

What You Want to Write a WordPress Plugin

computer code


You will have a couple of issues occurring earlier than writing your WordPress plugin. For starters, don’t take a look at your plugin in your dwell web site. If something goes mistaken, you threat knocking out your web site, which leads to horrible downtimes when you make things better.

As an alternative, create a testing or staging web site domestically or in your server. Right here’s how to:

Alternatively, you should utilize instruments corresponding to Native by Flywheel or DevKinsta.

Aside from that, you will want a textual content editor corresponding to Notepad++, SublimeText, or Atom. Whereas it’s not a requirement, you should utilize instruments corresponding to Pluginplate or Plugin Boilerplate to pace up improvement (extra about this later).

And now the enjoyable half, allow us to write a easy WordPress plugin. For this tutorial, I’m creating a plugin that may add a {custom} publish sort for an imaginary restaurant web site I’m constructing.

To the uninitiated, WordPress helps a number of publish sorts together with web page, publish, attachment, revision, and navigation menu. For our case state of affairs, we’ll create a easy plugin that provides the “Recipe” {custom} publish sort. For illustration functions, I’ll name my plugin “Sizzling Recipes.”

Allow us to dive proper in.

How to Write a Simple WordPress Plugin

Every WordPress plugin has a fundamental file that you may create manually or utilizing instruments corresponding to Plugin Boilerplate or Pluginplate. To save lots of time, allow us to use Pluginplate (it’s extra intuitive, IMO) to generate the principle file and a couple of additional information and folders that you just may want later. In the mean time, nevertheless, we merely want the principle file.

Creating the Foremost File

Head over to, and click on the Create Your Plugin button, as we spotlight under.

pluginplate wordpress plugin generator for custom plugins

Subsequent, fill out your plugin data as proven under. In direction of, the underside of the web page, you’ll discover the Modules part that enables you to add additional options to your plugin. Discover, additionally, that you may customise every module by clicking the Plus (+), as we element under. When you’re glad, click on the Generate Plugin button:

create a custom plugin

After that, click on the Obtain button and save your plugin to your pc.

Download Pluginplate WordPress plugin generator

Now, we now have all the fundamental information we want, together with the principle file. However don’t pop the bubbly but, our plugin received’t do something as it’s. We should add the code that may execute once we activate the plugin. Based mostly on our instance, my fundamental file is hot-recipes.php, which is the file we’ll edit within the subsequent part.

Including Capabilities

To find the hot-recipes.php mail file, extract the ZIP folder you downloaded from Pluginplate:

Contained in the folder, you need to see your fundamental file, which in our case – once more – is hot-recipes.php:

Desktop screenshot

Contained in the plugin folder, you possibly can see a bunch of different information however we don’t want these in the mean time. Subsequent, allow us to add some capabilities to the principle file. Open the principle file (hot-recipes.php) in your favourite textual content editor (I’m utilizing Notepad++).

You will note the next piece of code or one thing comparable relying on the way you stuffed out the shape at Pluginplate:

* Sizzling Recipes
* @package deal HOTRECIPES
* @writer Freddy
* @license gplv2-or-later
* @model 1.0.0
* @wordpress-plugin
* Plugin Identify: Sizzling Recipes
* Plugin URI:
* Description: The Sizzling Recipes WordPress plugins provides a {custom} publish sort appropriate for eating places.
* Model: 1.0.0
* Writer: Freddy
* Writer URI:
* Textual content Area: hot-recipes
* Area Path: /languages
* License: GPLv2 or later
* License URI:
* You must have acquired a copy of the GNU Common Public License
* together with Sizzling Recipes. If not, see <>.

// Exit if accessed instantly.
if ( ! outlined( ‘ABSPATH’ ) ) exit;

// Plugin identify
outline( ‘HOTRECIPES_NAME’, ‘Sizzling Recipes’ );

// Plugin model
outline( ‘HOTRECIPES_VERSION’, ‘1.0.0’ );

// Plugin Root File

// Plugin base

// Plugin Folder Path
outline( ‘HOTRECIPES_PLUGIN_DIR’, plugin_dir_path( HOTRECIPES_PLUGIN_FILE ) );

// Plugin Folder URL

* Load the principle class for the core performance
require_once HOTRECIPES_PLUGIN_DIR . ‘core/class-hot-recipes.php’;

* The primary operate to load the one occasion
* of our grasp class.
* @writer Freddy
* @since 1.0.0
* @return object|Hot_Recipes
operate HOTRECIPES() {
return Hot_Recipes::occasion();


Good, every thing appears nice. The above code will inform WordPress the identify of the plugin in addition to the model, writer, license, and different particulars. You don’t want to edit something. Allow us to transfer to the subsequent step.

Slightly below the above code, add the next code:

* Registers the recipes publish sort.
operate hot_recipes_register_post_types() {

// Set UI labels for the recipes publish sort.
$labels = array(
‘identify’ => _x( ‘Recipes’, ‘Publish Kind Common Identify’, ‘hot-recipes’ ),
‘singular_name’ => _x( ‘Recipe’, ‘Publish Kind Singular Identify’, ‘hot-recipes’ ),
‘menu_name’ => __( ‘Recipes’, ‘hot-recipes’ ),
‘parent_item_colon’ => __( ‘Mum or dad Recipe’, ‘hot-recipes’ ),
‘all_items’ => __( ‘All Recipes’, ‘hot-recipes’ ),
‘view_item’ => __( ‘View Recipe’, ‘hot-recipes’ ),
‘add_new_item’ => __( ‘Add New Recipe’, ‘hot-recipes’ ),
‘add_new’ => __( ‘Add New’, ‘hot-recipes’ ),
‘edit_item’ => __( ‘Edit Recipe’, ‘hot-recipes’ ),
‘update_item’ => __( ‘Replace Recipe’, ‘hot-recipes’ ),
‘search_items’ => __( ‘Search Recipe’, ‘hot-recipes’ ),
‘not_found’ => __( ‘Not Discovered’, ‘hot-recipes’ ),
‘not_found_in_trash’ => __( ‘Not present in Trash’, ‘hot-recipes’ ),

// Set different arguments for the recipes publish sort.
$args = array(
‘label’ => __( ‘recipes’, ‘hot-recipes’ ),
‘description’ => __( ‘Recipes.’, ‘hot-recipes’ ),
‘labels’ => $labels,
‘helps’ => array(
‘taxonomies’ => array(),
‘hierarchical’ => false,
‘public’ => true,
‘show_ui’ => true,
‘show_in_menu’ => true,
‘show_in_nav_menus’ => true,
‘show_in_admin_bar’ => true,
‘menu_position’ => 5,
‘can_export’ => true,
‘has_archive’ => true,
‘exclude_from_search’ => false,
‘publicly_queryable’ => true,
‘capability_type’ => ‘publish’,
‘show_in_rest’ => true,

// Registes the recipes publish sort.
register_post_type( ‘recipes’, $args );

add_action( ‘init’, ‘hot_recipes_register_post_types’ );

The above code merely registers our {custom} publish sort “recipes” with an array of choices. It additionally provides options corresponding to help for revisions, {custom} fields, excerpts, feedback, featured picture, and so forth. These are the options you’ll see contained in the publish editor when including a new recipe.

Apart: Now, I wouldn’t fear a lot in regards to the syntax at this level as a newbie as a result of it’s past the scope of at present’s publish. However with some PHP data, you’ll perceive each a part of the above code, and what every half does. Apart from, there’s loads of sources and code mendacity round on the web to study and observe.

Compress Your Plugin Folder

Save all of your adjustments. Compress the hot-recipes folder (it’s the folder the place you discovered the hot-recipes.php fundamental file we simply edited) into a archive (on a Mac it’s as straightforward as right-click, compress file – and on PC I consider it’s very comparable). Simply make sure that your folder saves as a .ZIP extension or the plugin received’t set up.

Subsequent, log in to your take a look at web site and navigate to Plugins > Add New, as proven under.

add new plugin 1

Subsequent, click on the Add Plugin button, select your plugin ZIP folder out of your pc and click on Set up Now:

Add Plugins ‹ Test — WordPress 1

Subsequent, Activate the plugin:

activate plugin hot

Now, in the event you examine your WordPress admin menu, you’ll discover our new Recipes publish sort, full with the flexibility to add new recipes:

success hot

Congrats on writing your first easy plugin! With this introduction, you possibly can go additional and mess around with the code to see what you will get. Additionally, you possibly can research the supply code of different plugins (all WordPress plugins are open-source) to study extra.

Now all you want is a few extra sources (checkout the Plugin Handbook) and plenty of observe and you may be coding away very quickly just like the legend you might be.

Programming and writing WordPress plugins can appear intimidating at first, particularly as a newbie. However with the correct instruments and a few studying sources, you possibly can develop plugins like a boss very quickly. It simply takes some coding chops and willpower and also you’re midway there.

I hope this tutorial pointed you in the correct path so far as understanding plugins go. This publish ought to function a stepping stone to growing advanced WordPress plugins that do no matter you’ll. Don’t cease right here, try the sources I really helpful above to improve your data of WordPress plugin improvement.

Should you discovered this tutorial useful or when you have the rest to add we’d love to know. Please share your ideas within the feedback part under. See you round!

Show More

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *