One place for hosting & domains


      How To Create A WordPress Plugin (Beginner’s Guide)

      One of the main reasons that WordPress is so popular is its open-source nature.

      Because of that, at the time of this writing there are over 60,000 WordPress plugins that have been developed for the internet’s favorite content management system (CMS).

      And you can join in on the fun by creating your own WordPress plugin.

      Fortunately, WordPress makes the process pretty easy. Some coding knowledge will be needed, but it’s not terribly hard to learn how to create a basic plugin to add additional functionality to your website. And if it goes really well, you may even be able to sell it to others and turn your project into a side hustle!

      Ready to learn more about why you might want to create a WordPress plugin, as well as how to develop your own?

      You’re in the right place!

      A Quick Intro To WordPress Plugins

      WordPress has a market share of nearly 63% among all CMSes, making it the most popular option by a landslide.

      DreamHost Glossary


      WordPress is an open-source Content Management System (CMS). Since it is free and accessible, WordPress is used to power almost any type of website, from blogs to e-commerce businesses.

      Read More

      As mentioned earlier, WordPress is an open-source software platform. That means its source code, plugins, and themes are available for anyone to work with and modify as they see fit.

      Note: There’s a difference between and The .org version is the open-source option that’s free to download and use to create a custom site. It’s the version we’ll cover in this post. The .com version is a hosted site builder with which you can create a limited site for free.

      WordPress plugins are packages of code that extend the functionality of a WordPress site. They’re created by different developers all around the world and are designed for a variety of purposes.

      For instance, in the existing plugin library you’ll find options for adding social media share buttons, adding newsletter signup forms to your sidebar, improving website search engine optimization (SEO), turning WordPress into a full-blown ecommerce site, and much more.

      The WordPress plugin ecosystem empowers those without coding knowledge to create and customize powerful websites. Additionally, it offers almost limitless opportunities for pro developers and web enthusiasts alike.

      Get Content Delivered Straight to Your Inbox

      Subscribe to our blog and receive great content just like this delivered straight to your inbox.

      Why Develop A WordPress Plugin?

      WordPress has one of the largest markets for developers. This means you’ll find plenty of resources to help you develop the exact plugin you need to optimize your website. (But don’t worry, we’ll also detail the process here soon!). You won’t find that level of support on many other website-building platforms.

      The magic of WordPress is that you can develop a solution for your own site and you don’t have to share it on the plugin market. However, many developers choose to make their plugins available to others to help them work around similar issues as those the developers encountered.

      If you do choose to offer your plugin to others, there’s some earning potential associated with WordPress plugins because of the massive user base.

      While there’s no shortage of competition, if you have a new or better solution to a common problem, you could find your plugin downloaded for thousands of sites. With a great plugin, the right pricing strategy, and some marketing efforts, a plugin could turn into a nice passiveish income stream.

      hypothetical math showing how much one could make by developing a plugin assuming 10,000 active users times 2% conversion equals 200 sales/year times $50/annual subscription equals $10K

      Lastly, WordPress is an ideal platform for learning how to code. Because it has been around for over 20 years, there’s a seemingly limitless number of resources both on and off WordPress to help you get the hang of development.

      Speaking of resources, let’s dive into everything you need to know to create your very own WordPress plugin.

      How To Create a WordPress Plugin (6 Steps)

      While different plugins will require different amounts of coding and know-how, they all tend to follow this same general development process.

      Step 1: Do Your Research And Planning

      Like we said, there are numerous tools in the WordPress plugin directory — tens of thousands of them in fact. Therefore, the first thing you’ll want to do is do some research to see if your idea already exists.

      Even if it does, you could still proceed with your plan, provided that you make some tweaks so that you’re not creating an exact replica. Explore similar plugins and find out how you might be able to improve upon them. Alternatively, you could complement what’s already available with something like your own custom post type — say, to help keep a diary of your media consumption — or additional features.

      You might also want to check the status of existing plugins. For instance, if a plugin hasn’t been updated in some time or isn’t compatible with the latest version of WordPress, there might be an opportunity to provide a better solution.

      You can also look at the number of active installations to see if there’s a big market for the type of plugin that you have in mind. This can help you decide if it’s worth the effort if you’re looking to earn money. It’s also a good idea to test the plugin on your own site to see what it does well and what could be done better.

      Finally, before diving into the build, you’ll want to read up on the WordPress Coding Standards. This is particularly important if you’re planning to share or sell your plugin. These coding standards are a set of guidelines and best practices that developers should try to adhere to when creating themes and plugins for WordPress.

      Related: Want To Learn WordPress? Start With These Resources

      Step 2: Set Up A Testing Environment

      The next step is to set up a testing environment.

      As a beginner, you’re likely to learn (and maybe break) a few things along the way. You don’t want to experiment on your live website that any internet user can see. A local environment — a staging website — will enable you to test your plugin privately as you work on it.

      We endorse using Local to create a WordPress site on your computer. It offers a straightforward, user-friendly development environment that offers powerful yet flexible tools for most people.

      You can also create an online staging environment. With DreamHost web hosting, you can easily create a staging WordPress site where you can test your plugin without breaking your live site or interrupting your visitors’ user experiences.

      Step 3: Create Your Plugin File

      Once you have your staging environment set up, it’s time to use it to create your plugin.

      The first step is to create a folder for it in your site’s directory.

      You can use an FTP/SFTP client like FileZilla to access your site’s files and folders. Or, you may be able to tap into your site via the file manager provided in your hosting account. For DreamHost users, our guide to using the website file manager will help you use our built-in file manager.

      Once you’ve connected to your site’s directory, navigate to wp-content/plugins and create a new folder for your plugin.

      Next, you’ll need to create a PHP file to add to this folder. To do this, open your preferred text editor and enter the following information:

      * Plugin Name: test-plugin
      * Plugin URI:
      * Description: Test.
      * Version: 0.1
      * Author: your-name
      * Author URI:

      Of course, you’ll need to change the above information to match your details. When you’re ready, you can save your file. Remember to use the file extension “php” (e.g., my-first-plugin.php).

      Then, you’ll need to upload this file to the plugin folder that you just created at wp-content/plugins. Once you’ve done this, navigate to your test site’s WordPress dashboard and go to the Plugins page.

      screenshot showing the plugins option on a wordpress menu

      Here, you should be able to see your new plugin!

      This plugin won’t do anything yet if you were to activate it. However, WordPress will recognize it as a functional add-on from this point forward.

      Step 4: Add Code To Your Plugin

      Every plugin is different. However, they all share common components. For instance, all plugins use hooks to interact with WordPress.

      DreamHost Glossary


      WordPress hooks are pieces of code that allow you to modify the CMS and add new features to it without tinkering with core files. Hooks make this possible by enabling you to “hook” custom code into pre-defined spots in WordPress.

      Read More

      A hook is how a plugin connects to the pre-existing code of WordPress’s core programming. In other words, the hook is the anchor point where a plugin inserts itself in order to add or change the functionality of a site.

      Hooks are an important part of WordPress development. There are hundreds of hooks that can be used as triggers for a plugin, and you can even create new ones if needed.

      But for now, there are two types of hooks that you’ll need to consider when creating your plugin:

      1. Actions: These add or change WordPress functionality and make up the majority of hooks.
      2. Filters: These are used to modify the functionality of actions.

      To code your plugin, you’ll need to familiarize yourself with hooks and how they work. Fortunately, the Plugin Handbook from WordPress can help you get started.

      For this guide, we’ll use the following code (source) as an example:

      function modify_read_more_link() {
          return '<a class="more-link" href="' . get_permalink() . '">Click to Read!</a>';
      add_filter( 'the_content_more_link', 'modify_read_more_link' );

      As you might be able to see, this code uses a filter to modify the standard “read more” link by replacing it with a different value: “Click to Read!”

      If you add this snippet to your PHP file and activate the plugin on your site, you’ll end up seeing the following anchor text below your post excerpts:

      example of this plugin at work with a header image, some text, and a "Click to Read!" call to action

      Feel free to experiment with the code and try using a different function.

      Note that you could also add this code to your theme’s functions.php file. This file contains code that adds functionality to your site and works in a way that’s similar to how a plugin adds functionality. However, if you switch to a different theme in the future — or your theme is upgraded to a new version — you’ll lose these changes.

      This kind of code works only for Classic themes. Block themes work differently and often require no PHP code since everything is built using Blocks using only the Site Editor.

      Also note that the code in the example plugin above works only for sites utilizing classic themes. If you’ve been using the site editor built into WordPress — which has been in the core software for several years now — to lay out your site using blocks, the code above won’t do much for you.

      Related: How To Install A WordPress Theme (Tutorial)

      Step 5: Test Your Plugin

      As you continue developing your plugin, it’s important that you save your work often and test your changes on your staging or development site.

      Once you’re satisfied with your plugin, you should try it on a live site. Again, you’ll want to make sure that you’ve already thoroughly tested your plugin for any bugs and vulnerabilities.

      It’s also a good idea to create a backup of your live site before testing your plugin on it. This way, if anything does go wrong, you can restore your content.

      If you’re happy with the performance of your plugin at this point, you could offer it to other developers for them to use and test. This can earn you valuable feedback. You could also ask them to put your plugin through its paces and try to break it to prove its stability.

      To do this, you’ll want to export your plugin to a zip file for easy distribution and installation. Locate your plugin’s folder in the site’s directory, then right-click on it and follow the steps to create a zip file. For example, on Microsoft Windows select Send to > Compressed (zipped) folder.

      Choose a destination, and the files within your folder will be compiled into a zip folder that you can easily share. If you’re developing on a live site, you may need to first download the plugin folder from your SFTP client before compressing it.

      To install your plugin on a WordPress site, simply navigate to Plugins > Add New Plugin from the sidebar in your WordPress admin panel.

      screenshot of the "add new plugin" option on a wordpress navigation menu

      At the top of the page, you’ll see a button to Upload Plugin. Once selected, you’ll be prompted to choose a zip file to upload to your site.

      screenshot showing "if you have a plugin in a .zip format, you may install or update it by uploading it here" with a choose file to upload button

      Upload the compressed file you just made and select Install Now. WordPress will then unpack and install the plugin on your site.

      Once that’s complete, just click on Activate Plugin.

      Your new plugin is now live!

      Step 6: Distribute Your Plugin (2 Options)

      Now, you can start distributing the plugin you’ve created. Let’s look at the best ways to do this.

      A. Publish Your Work To The WordPress Plugin Directory

      By adding your plugin to the WordPress plugin directory, you can share your work with the community and gain exposure. You can take advantage of the WordPress user base to attract new clients.

      However, you’ll need to make sure that your plugin complies with best practices and the Detailed Plugin Guidelines before uploading it for review. Keep in mind, it might take a while for your plugin to be reviewed and accepted.

      Once your plugin is approved, you’ll need to add your files to the Subversion directory.

      When this is all done, WordPress users will be able to install your plugin on their sites.

      B. Share The Plugin On Your Own Website

      In addition to uploading your plugin to the WordPress directory, you could also create a website for it.

      You can use a site like this to market and provide more details about your plugin. You could also include documentation, tutorials, support options, links to other plugins you’ve made, and so on.

      Developers often use websites to promote their premium plugins while providing a free or “lite” version in the WordPress directory. That way, users are able to easily find and download the product via WordPress before upgrading to a paid option.

      You can lock certain advanced features behind a paywall, which can all be explained on a plugin website. Additionally, you can offer a multi-tiered membership model that offers a variety of feature sets depending on a user’s needs and budget.

      Set Yourself Up For Plugin Success With DreamHost

      As an open-source platform, WordPress enables you to develop your own plugin and share it with other users. While some coding knowledge will certainly be helpful, you can easily create a simple plugin and vastly improve your site’s functionality by following the steps above.

      Once you’ve gained enough experience, you may even want to start selling premium versions of your plugins for a rewarding and mostly passive income stream!

      But to really set yourself up for success, you need to be able to spin up an affordable plugin testing site — DreamPress can help you with that — as well as one or more marketing sites to display and sell your premium plugins. Use our AI-powered business name generator, affordable domain name finding and registration service, and WordPress-specific website builder to go from plugin idea to viable side hustle with ease!

      Do More with DreamPress

      DreamPress Plus and Pro users get access to Jetpack Professional (and 200+ premium themes) at no added cost!

      Managed WordPress Hosting - DreamPress

      Beginner’s Guide to the WordPress .htaccess File

      Keeping your site safe should be a top priority for every administrator. WordPress is a secure platform out of the box, but that doesn’t mean it’s impervious to attacks. Fortunately, even if you aren’t a security expert, you can use a file called .htaccess to harden your site’s security policies.

      .htaccess is a configuration file for the Apache web server, which serves many WordPress sites. It’s a powerful tool that helps safeguard your site and boost its performance through some minor tweaks to its code. By editing this file, you can ban users, create redirects, prevent attacks, and even deny access to specific parts of your site.

      An Introduction to the .htaccess File

      .htaccess is short for “HyperText Access.” It’s a configuration file that determines how Apache-based servers interact with your site. In simpler terms, .htaccess controls how files in a directory can be accessed. You can think of it as a guard for your site because it decides who to let in and what they’re allowed to do.

      By default, an .htaccess file is typically included in your WordPress installation. The main purpose of this file is to improve security and performance. Plus, it also enables you to override your web server’s settings.

      You’ll most likely find your .htaccess file in your site’s root directory. Since .htaccess applies to both its own directory and any subdirectories within that main folder, it impacts your entire WordPress site.

      It’s also worth noting that the .htaccess file does not have a file extension. The period at the start simply makes sure the file remains hidden.

      How to Edit Your WordPress .htaccess File

      Editing the .htaccess file is, in practice, as simple as editing any other text file. However, because this is a core file, making changes to it can have unintended consequences.

      For this reason, it’s vitally important that you back up your site before you begin, regardless of whether you’re a beginner or an experienced developer.

      When you’re ready to edit your .htaccess file, you can access it using Secure File Transfer Protocol (SFTP) or Secure Shell (SSH). You will find .htaccess in your site’s root directory:

      WordPress .htaccess file

      Open the file using your preferred text editor, such as TextEdit or Notepad. If the file hasn’t been edited before, you’ll see the following default information:

      WordPress .htaccess file

      It’s important not to add or change anything between the # BEGIN and # END tags. Instead, all new code should be added after this block.

      At this point, all you need to do is add your code and save the file. When you’re including multiple new functions, it’s best to save and test each one separately. If an error occurs, this will make it much easier to troubleshoot which change caused the problem.

      While almost all WordPress installations will already contain an .htaccess file, in some cases, you may need to create one. You can do this using a text editor of your choice, as long as you save it with the right file name: .htaccess with no extension.

      It’s also important to configure the file’s permission settings correctly. You can then upload .htaccess to your site’s root directory.

      9 Things You Can Do With Your WordPress .htaccess File

      Now that you’re familiar with the .htaccess file, it’s time to get up close and personal. We’re going to introduce a number of ways you can easily boost your site’s security and performance by editing this file.

      Simply use the code snippets we’ve provided below, and remember to create a backup before you start!

      1. Deny Access to Parts of Your Site

      One of the most useful things you can do with .htaccess is deny access to certain pages and files. There are a few files you should consider hiding in this way for security reasons, such as your wp-config.php file.

      You can do this by adding the following code, which will cause a 404 error to appear if anybody attempts to view the file:

      <Files ~ "/wp-config.php">
      Order Allow,Deny
      Deny from All

      In cases where sensitive data should be hidden, it can be useful to restrict access to the corresponding directory. Since many WordPress sites use the same folder structure, this setup can leave your site vulnerable. If you add the following line, it will disable the default directory listing functionality:

      Options -Indexes

      This will stop users and robots from viewing your folder structure. If anybody tries to access it, they’ll be shown a 403 error page instead.

      2. Redirect and Rewrite URLs

      Creating redirects enables you to automatically send users to a specific page. Redirects can be particularly useful if a page has moved or been deleted, and you want users who attempt to access that page to be taken somewhere else.

      You can accomplish this with a plugin such as Redirection, but it’s also possible to do it by editing the .htaccess file. To create a redirect, use the following code:

      Redirect /oldfile.html

      You can probably see what’s going on here. The first part is the path to the old file, while the second part is the URL you want visitors to be redirected to.

      Get Content Delivered Straight to Your Inbox

      Subscribe to our blog and receive great content just like this delivered straight to your inbox.

      3. Force Your Site to Load Securely With HTTPS

      <style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style><div class=’embed-container’><iframe src=’’ frameborder=’0′ allowfullscreen></iframe></div>

      If you have added an SSL certificate to your domain, such as DreamHost’s free Let’s Encrypt certificate, it’s a good idea to force your site to load using HTTPS. This will ensure that your site is safer for both you and your visitors.

      You can make it happen by adding the following code:

      RewriteEngine On
      RewriteCond %{HTTPS} !=on
      RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

      Your site will now automatically redirect any HTTP requests and direct them to use HTTPS instead. For example, if a user tries to access, they will be automatically redirected to

      4. Change Caching Settings

      Browser caching is a process where certain website files are temporarily saved on a visitor’s local device to enable pages to load faster. Using .htaccess, you can change the amount of time that your files are stored in the browser cache until they are updated with new versions.

      There are a few different ways to do this, but for this example, we’ll use a function called mod_headers. The following code will change the maximum caching time for all jpg, jpeg, png, and gif files:

      <ifModule mod_headers.c>
      <filesMatch "\\.(jpg|jpeg|png|gif)$">
      Header set Cache-Control "max-age=2592000, public"

      We’ve set the maximum time to 2,592,000 seconds, which equates to 30 days. You can change this amount if you want, as well as the file extensions that will be affected. If you want to add different settings for different extensions, simply add more mod_header functions.

      5. Prevent Certain Script Injection Attacks

      Script injection (or ‘code injection’) attacks attempt to change how a site or application executes by adding invalid code. For example, someone might add a script to a text field on your site and then submit it, which could cause your site to actually run the script.

      You can add the following code to protect against certain types of script injection:

      Options +FollowSymLinks
      RewriteEngine On
      RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
      RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
      RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
      RewriteRule ^(.*)$ index.php [F,L]

      Your site should now be able to detect and stop script injection attempts and redirect the culprit to your index.php page.

      However, it’s important to note that this example will not protect against all types of injection attacks. While this particular code can certainly be useful, you should not use it as your only protection against this type of attack.

      6. Stop Username Enumeration Attacks

      Username enumeration is a process where usernames from your site are harvested by looking at each user’s author page. This is particularly problematic if someone manages to find your admin username, which makes it much easier for bots to gain access to your site.

      You can help prevent username enumeration by adding the following code:

      RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
      RewriteCond %{QUERY_STRING} author=\d
      RewriteRule .* - [R=403,L]

      This will stop certain attempts to enumerate usernames and throw up a 403 error page instead. Bear in mind that this will not prevent all enumeration, and you should test your security thoroughly. We also recommend strengthening your login page further by implementing Multifactor Authentication.

      7. Prevent Image Hotlinking

      Image hotlinking is a common problem that happens when images on your server are being displayed on another site. You can stop this by adding the following code to .htaccess:

      RewriteEngine On
      RewriteCond %{HTTP_REFERER} !^$
      RewriteCond %{HTTP_REFERER} !^https://(www\.)?*$ [NC]
      RewriteRule \.(png|gif|jpg|jpeg)$ [R,L]

      Replace with your own domain, and this code will prevent images from loading on all other sites. Instead, the picture you specify on the last line will load. You can use this to send an alternative image to sites that try to display graphics from your server.

      Beware that this may cause issues when you might want images to appear externally, such as on search engines. You might also consider linking to a script instead of a static image, then respond with a watermarked image or an image containing an ad.

      8. Control Your File Extensions

      By using .htaccess, you can control how files of different extensions are loaded by your site. There’s a lot you can do with this feature, such as running files as PHP, but we’re just going to look at a basic example for now.

      The following code will remove the file extension from PHP files when they’re loaded. You can use this with any file type, as long as you replace all instances of “php” with the extension you want:

      RewriteEngine On
      RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\ HTTP/
      RewriteRule ^(.*)index$$1 [L,R=301]
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^([^/]+)/$$1 [L,R=301]
      RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.php\ HTTP/
      RewriteRule ^(.+)\.php$$1 [L,R=301]
      RewriteRule ^([a-z]+)$ /$1.php [L]

      This will cause all PHP files to load without displaying their extension in the URL. For example, the index.php file will appear as just index.

      9. Force Files to Download

      Finally, when a file is requested on your site, the default behavior is to display it in the browser. For example, if you’re hosting an audio file, it will start to play in the browser rather than being saved to the visitor’s computer.

      You can change this by forcing the site to download the file instead. This can be done with the following code:

      AddType application/octet-stream mp3

      In this example, we’ve used mp3 files, but you can use the same function for txt, mov, or any other relevant extension.

      Improve Your Site’s Security and Performance

      The .htaccess file provides flexibility for controlling how your web server behaves. You can also use it to increase your site’s performance and get more control over exactly who can access what information.

      With .htaccess, you can deny access to particular parts of your website. Additionally, it allows you to redirect URLs, force your site to load over HTTPS, and prevent some script injection attacks.

      Editing your .htaccess file is just one way to improve your site’s security. Choosing a secure WordPress hosting provider is another. Check out our DreamPress managed hosting plans to see how we can boost your website’s security and performance!

      Do More with DreamPress

      DreamPress Plus and Pro users get access to Jetpack Professional (and 200+ premium themes) at no added cost!

      Managed WordPress Hosting - DreamPress

      Source link

      How to Develop Your Own WordPress Theme (Beginner’s Guide)

      If you want something done a certain way — well, you just might have to do it yourself. Sure, while there are plenty of great WordPress themes available, finding one that meets your specific requirements may prove difficult for some. To solve for this, you might be tempted to create your own custom WordPress theme.

      Fortunately, creating a custom theme for WordPress is a relatively straightforward process. Surprisingly, it doesn’t require a ton of technical knowledge or experience with web development. Plus, building your own theme can be well worth the effort since you can get your site looking exactly the way you want it.

      An Introduction to WordPress Theme Development

      You want your site to look great and have all the functionality you need, so you check out the WordPress Theme Directory:

      WordPress theme directory

      Unfortunately, nothing you see fulfills your requirements, and you don’t want to compromise on your vision. Maybe you want something unique that will make your site stand out, but you don’t want to spend the money on a premium theme.

      At this point, you might consider creating your own theme. Fortunately, developing a theme for WordPress is not as complicated as you might think. Thanks to the platform’s user-friendly interface and the numerous tools available, almost anyone can create a custom theme.

      We’re going to take you through the process of creating your first theme. To get started, you’ll need two things:

      You’ll also benefit from having experience with local staging environments, as you’ll be using one to create your theme. Having some understanding of CSS and PHP will also be helpful (if not necessary).

      Finally, there’s one important tool you’ll want to have, which will make the process much easier: a starter theme.

      What a Starter Theme Is (And Why You Should Use One)

      A starter theme is a bare-bones WordPress theme that you can use as a basis to create your own. This enables you to build on a solid framework without having to worry about the complexities involved in coding a theme from scratch. It will also help you understand how WordPress works by showing you the basic structure of a theme and how all its parts work together.

      There are plenty of excellent starter themes out there, including Underscores, UnderStrap, and Bones (just to name a few).

      We’ll be using Underscores for our tutorial. It’s a solid choice for beginners because it only contains the basics. Plus, this starter theme is developed by Automattic (the team behind, which means it’s more likely to be safe, compatible, and well-supported in the long run.

      How to Develop Your First WordPress Theme (In 5 Steps)

      With the preparation out of the way, you’re finally ready to start creating your first theme. As we mentioned earlier, we’ll be using a starter theme for this walkthrough.

      However, if you want to try creating everything yourself with no template, you should feel free to do so. Bear in mind that this approach will require a lot more coding proficiency.

      Step 1: Set Up a Local Environment

      The first thing you’ll need to do is to create a local development environment. This is effectively a server that you install on your computer, which you can use to develop and manage local WordPress sites. A local site is a safe way to develop a theme without impacting your live site in any way.

      There are many ways you can create a local environment, but we’ll be using Local.This is a fast, easy way to install a local version of WordPress for free and is compatible with both Mac and Windows:

      Local WordPress development tool

      To get started, select the free version of Local, choose your platform, add your details, and download the installer.  When the installation has been completed, you can open the program on your computer.

      Here, you’ll be asked to configure your new local environment:

      WordPress initial setup screen

      This is a straightforward process, and you’ll have your local WordPress site ready in a few minutes. Once set up, your new site will look and work exactly like a live WordPress website.

      Step 2: Download and Install Your Starter Theme

      Like most starter themes, Underscores is very easy to get started with. In fact, all you need to do is go to the website and name your theme:

      Underscores custom WordPress theme development

      If you want, you can click on Advanced Options to customize the base theme further:

      Underscores custom WordPress theme development

      Here you can fill out more information, such as the author’s name, and give the theme a description:

      Underscores custom WordPress theme development

      There’s also the _sassify! option, which will add Syntactically Awesome StyleSheets (SASS) files to your theme. SASS is a preprocessing language for CSS, which enables you to use variables, nesting, math operators, and more.

      When you’ve made your choices, you can click on Generate, which will download a .zip file containing your starter theme. This is the core file around which you’ll develop your own theme, so you’ll need to install it on your local site.

      Once you’ve installed your theme, you can preview your site to see how it looks. It’s very basic right now, but that won’t be the case for long!

      Step 3: Learn about the different components of a WordPress theme

      Before you can customize your theme, you’ll need to understand the purpose of its components and how they fit together.

      First, let’s discuss template files, which are the main building blocks of a WordPress theme. These files determine the layout and look of the content on your site.

      For example, header.php is used to create a header, while comments.php enables you to display comments.

      WordPress determines which template files to use on each page by going through the template hierarchy. This is the order in which WordPress will look for the matching template files every time a page on your site is loaded.

      For example, if you visit the URL, WordPress will look for the following templates files in this order:

      1. Files that match the slug, such as this-post
      2. Files that match the post ID
      3. A generic single post file, such as single.php
      4. An archive file, such as archive.php
      5. The index.php file

      Since the index.php file is required by all themes, it’s the default option if no other file can be found. Underscores contains the most common template files and they will work right out of the box. However, you can experiment with editing them if you want to get a feel for how they work together.

      Another important element you need to grasp is The Loop. WordPress uses this code to display content, so in many ways, it’s the beating heart of your site. It appears in all template files that display post content, such as index.php or sidebar.php.

      The Loop is a complex subject that we recommend you read more about if you want to understand how WordPress displays post content. Fortunately, the Loop will already be integrated into your theme thanks to Underscores, so there’s no need to worry about it for now.

      Get Content Delivered Straight to Your Inbox

      Subscribe to our blog and receive great content just like this delivered straight to your inbox.

      Step 4: Configure Your Theme

      It’s easy to think that themes are purely for cosmetic purposes, but they actually have a huge impact on your site’s functionality. Let’s look at how you can make a few basic customizations.

      Add Functionality with ‘Hooks’

      Hooks are code snippets inserted into template files, which enable you to run PHP actions on different areas of a site, insert styling, and display other information. Most hooks are implemented directly into the WordPress core software, but some are useful for theme developers as well.

      Let’s take a look at some of the most common hooks and what they can be used for:

      • wp_head() — Added to the <head> element in header.php. It enables styles, scripts, and other information that runs as soon as the site loads.
      • wp_footer() — Added to footer.php right before the </body> tag. This is often used to insert Google Analytics code.
      • wp_meta() — This usually appears in sidebar.php to include additional scripts (such as a tag cloud).
      • comment_form() — Added to comments.php directly before the file’s closing </div> tag to display comment data.

      These hooks will already be included in your Underscores theme. However, we still recommend visiting the Hooks Database to see all available hooks and learn more about them.

      Add Styles with CSS

      Cascading Style Sheets (CSS) define the appearance of all content on your site. In WordPress, this is accomplished using the style.css file. You’ll already have this file included in your theme, but at the moment, it only contains the basic, default styling:

      editing the CSS stylesheet of a new custom WordPress theme

      If you want a quick example of how CSS works, you can edit any of the styles here and save the file to see the effects. For example, you can find the following code (usually on line 485):

      a {
      color: royalblue;

      This code controls the color of unvisited hyperlinks, which appear royal blue by default:

      WordPress custom theme test site

      Let’s see what happens if we try to change that by replacing it with the following code:

      a {
      color: red;

      Save the file and check out your local site. As you might expect, all unvisited links will now appear bright red:

      sample page of a test custom WordPress theme

      You might notice that the visited link at the top has not changed color. That’s because it’s actually governed by the next section in the stylesheet:

      a:visited {
      color: purple;

      This is a very basic example of how editing style.css will affect the look of your site. CSS is a massive topic that we recommend you explore further if you want to learn more about creating web designs. There are plenty of resources on the topic for beginners.

      Step 5: Export the Theme and Upload It to Your Site

      When you’ve finished tinkering with your theme, it’s time to make sure it works properly. To do this, you can use the Theme Unit Test data.

      This is a set of dummy data that you can upload to your site. It contains many different variations of styles and content, and it will enable you to see how your theme copes with unpredictable data.

      When you’ve thoroughly tested your theme and are convinced that it meets the required standards, all that remains now is to export it.

      First, you’ll need to find the location of your website on your local machine. You’ll likely find it in a folder called Websites, inside your default Documents directory.

      Open the website’s folder and access /wp-content/themes/, where you’ll find your theme:

      WordPress wp-content themes folder in FTP client

      You can now use a compression tool, such as WinRAR, to create a .zip file based on the folder. Simply right-click on the folder and select the option that enables you to zip it, such as Compress “folder”:

      compressing custom WordPress theme to prepare for upload

      When the folder has been zipped, it’s ready to be uploaded and installed on any WordPress site, just as you installed your Underscores theme at the start. If you’re particularly happy with the result, you could even submit your theme to the WordPress Theme Directory!

      Create a Custom WordPress Theme

      Creating a custom WordPress theme from scratch is no small feat. However, the process might not be as difficult as you might think.

      To recap, here’s how to develop a WordPress theme in five simple steps:

      1. Set up a local environment, using Local.
      2. Download and install a starter theme, like Underscores.
      3. Learn about the different components of a WordPress theme.
      4. Configure your theme.
      5. Export the theme and upload it to your site.

      By following the guidelines in the Codex documentation site, you can develop a theme that meets quality standards. You might even consider submitting it to the WordPress Theme Directory!

      Do More with DreamPress

      DreamPress Plus and Pro users get access to Jetpack Professional (and 200+ premium themes) at no added cost!

      Managed WordPress Hosting - DreamPress

      Source link