WordPress is the most popular CMS right now and there are millions of websites which have been built using WordPress. But WordPress websites are not complete without the use of appropriate plugins. Plugins are a big reason why WordPress is so much versatile and user-friendly platform. WordPress enables the users to quickly add new code and new functionality to their WordPress websites with the click of a button. But there are many instances when the existing WordPress plugins are not capable to provide the desired functionality to your WordPress websites. Therefore, in these cases you should be ready to create your own plugin.
In this article, we will discuss about how to get stared with WordPress Plugin Development and we will take you through the process of creating your very first plugin.
What is a WordPress Plugin?
Plugins are basically PHP scripts that can alter your website. They contain small code or sometimes even lots of code that can be uploaded to your WordPress install to extend and expand the functionality of your website without having to edit or change the core code.
The good thing about plugins is that they allow you to add features to your WordPress site and remain intact, even if you switch themes or upgrade your WordPress core install. In other words, Plugins are self-contained modules that exist outside the WordPress core code so that they can be edited and updated as needed without affecting the website’s overall structure and theme.
This provides plugins developers unlimited flexibility and control over the performance of a WordPress website while leaving the core code untouched. This is highly useful as any updates or changes made to the WordPress core code overwrites any local changes a developer make to a particular WordPress website. Good thing is that these plugins can be activated, deactivated and deleted without affecting the Core website.
If you want to create your own WordPress plugin, then you have to follow a certain procedure which is not that difficult and it can really solve many of your problems. Editing your theme’s functions.php file is great but these changes will be lost when you will update your theme. Hence plugin is a safe way to add more features and functionalities into your WordPress website. Let’s now proceed towards discussing the steps for creating a plugin.
Why to Create a WordPress Plugin?
Creating a WordPress plugin is not at all a complex process and if you devote little time and effort then you will be able to easily create a plugin even from scratch. If you understand how plugins hook into the WordPress’s core you will be able to easily create a new plugin without any issue.
If you use plugins then you get almost unlimited customization possibilities and if there is a feature you want to add to your website, you can just search the online Plugin Directory which contains more than 50,000 WordPress plugins as options.
But many times it happens that the developer doesn’t find the required plugin that does exactly what the developer wants it to do at the WordPress website therefore it is a good idea and option for the developer to consider creating his own plugin. To do this the developer first need to understand how plugins works and interacts with WordPress core.
How Plugins Work? Knowing About Hooks, Actions and Filters
Once you get to know about the terminology related to the plugin development, things will become much easier for you. Let’s first understand some of the most important and commonly used terms.
Hooks: - Hooks is one of the most important concept while learning plugin development. Actually Hooks are connection points where you can attach your plugin to the WordPress core code. Actually, hooks determine when and where the plugin will be used on a website.
Best example of this is the wp_loaded hook which is triggered when all of the WordPress site has been loaded. If a plugin has this functionality which needs to run only when that state has been reached, then you have to connect it to this hook.
Hooks are of two types i.e. actions and filters. You can read more about the basic difference between the two here online. Also read more about how Actions add new functionality here and how Filters modify existing functionality here at the WordPress.org website. Also read this link to learn more about them.
Things to Consider Before Creating a WordPress Plugin
Before you start the process of WordPress plugin development, you should go through the best practices to follow when creating your plugins provided by WordPress.org itself. Following these guidelines will help you to create important foundation for your plugin and it will bring compatibility with other plugins and themes and make it easier if you want to share your plugin and other developers want to use it in their site.
Here are the Pre-steps: -
- How you will Name Your Plugin, variables and functions?
This step is important as you would not want to create plugins with the same names as existing plugins. Hence you should add a unique prefix to every variable and function that you will define in your plugin code.
- Making Sure that Your Plugin is Secure
This step is also important and you need to make sure that your plugin code is safe as an unsecured plugin will be a huge risk to your WordPress website.
- How to Structure Your Plugin?
This involves the things like how many files should your plugin contain and whether you want to save it in one folder or many folders. Hence plan about this in advance as then it will be easier for other developers to understand how your plugin works.
- Adhering to the WordPress’ Coding Standards
WordPress’ coding standards have been created by the WordPress community and they will help you a lot to avoid common coding errors and bugs. They will also make your plugin code easy to understand by other WordPress developers.
Steps to Create a WordPress Plugin: -
The below steps will help you to create your first WordPress plugin.
- Set Up an Offline or Staging WordPress Site
First step is to set up an offline or staging WordPress site. This will create a development environment where you can create and test your WordPress plugin. This site should not be available to public and it will be only used by you for plugin development work. This site will help you to develop your plugin and test it without affecting your live site. This staging environment cab be a local WordPress installation on your machine or a private WordPress site. Remember never use a live site for plugin development as this could break the site or make it vulnerable for online threats.
Creating a New Plugin File
Now as your staging site is ready hence you can start your work and the first thing you need to do is the create the folder where your WordPress plugin will stay. Remember all plugins are added to the same location which is the directory /wp-content/plugins/. Hence go to this location and create a new folder and give it a name that matches your plugin name. After that add a new PHP file to this folder with the pre-decided name. You can use any text editor to do this and add the following information into it: -
This is the meta information that WordPress will display with your plugin.
Now open your WordPress site’s admin area and click on Plugins. Here you will find that your new plugin has been added to the list. You can activate your plugin from here but you still have to enter the code for any functionality. You should also add a readme file to your plugin.
Adding Code into the Plugin File
Now it is the time to add functionality to your plugin and it needs coding skills and creativity. Let’s create a simple plugin having only one function. Just for an example, this code is to change the default error message which appears when users make an unsuccessful login attempt on your WordPress site. This message will tell the users why the attempt was denied. Open your my-first-plugin.php file in the code or text editor and add the following code after the previously placed header information: -
return 'Login process went wrong!';
add_filter( 'login_errors', 'plg_no_wordpress_errors' );
Let’s understand now this simple code.
First we have defined a new function called plg_no_wordpress_errors – with the plg prefix for plugin to make sure the name is unique. This function returns a specified string which we want to display instead of the error message and we have set this to “'Login process went wrong!”. You can change this to anything. After that, we have used a filter that connects to the hook called login_errors hence when this hook triggers means when a login error occurs, the filter will run the plg_no_wordpress_errors function.
Once you have written and pasted this code just save the file and the plugin is ready to use and perform. This is just a simple example and you can create any other plugin also.
Testing of the Plugin
After writing code into your plugin PHP file, it is now time to test it to make sure it works perfectly. This is an easy step although the method of testing also depends upon the functionality and the complexity of the code which you have added.
Now log out of the WordPress admin area and access the /wp-login/page for your staging or offline site and try to login with some incorrect credentials knowingly. If your plugin is properly coded and created, you will get the message which you have given in the code. Now you know that your new plugin is working perfectly fine.
- Sharing the Plugin for the WordPress Community to Use it
Although now your WordPress plugin is ready to be installed and activated on any WordPress website but for that first you need to share it with the WordPress community. For that first you need to compress the my-first-plugin folder as a zip file and use this zip file to install the plugin on your live site to test it. As you also want to host your plugin externally so that it can be downloaded, tested and used by other developers also therefore you need to host it in the WordPress Plugin Directory. For that you need to submit it at this link. There are certain conditions which you need to follow there. You can also upload your plugin to a different host like GitHub. For this you need to create a repository of your plugin where you can upload it.
First of all, we congratulate you as you have just created your first WordPress plugin. Although it is a simple one but after getting motivation from this you can build upon to create even more complex plugins to extend the functionality of your WordPress Website and give yourself an unprecedented level of control over your WordPress website. There are so many things which you can do with plugins and you should use your creativity to experiment more. Just remember to do more research on hooks which can help you to add new functionality and make things work in whatever way you want to. Best of luck for creating your own new plugins! That’s it for now.