Giter Club home page Giter Club logo

wordpress-plugin-boilerplate's Introduction

WordPress Plugin Boilerplate

The WordPress Plugin Boilerplate serves as a foundation and aims to provide a clear and consistent guide for building your WordPress plugins. Just download, replace a few instances of 'plugin-name' with the name of your own plugin, and you'll get to the meat of coding your plugin in no time!.

Features

  • The Plugin Boilerplate is fully-based on the WordPress Plugin API.
  • Uses PHPDoc conventions to document the code.
  • Example values are given, so you can see what needs to be changed.
  • Uses a strict file organization scheme to make sure the assets are easily maintainable.
  • Note that this boilerplate includes a .pot as a starting translation file.
  • Notes on managing assets prior to deployment are covered below
  • Tools used for translation are below

Contents

The WordPress Plugin Boilerplate includes the following files:

  • This README, a ChangeLog, and a gitignore file.
  • A subdirectory called plugin-name that represents the core plugin file.

Installation

  1. Copy the plugin-name directory into your wp-content/plugins directory
  2. Navigate to the Plugins dashboard page
  3. Locate the menu item that reads TODO
  4. Click on Activate

This will activate the WordPress Plugin Boilerplate. Because the Boilerplate has no real functionality, nothing will be added to WordPress; however, this demonstrates exactly how your plugin should behave while you're working with the Boilerplate.

Localization Tools

The WordPress Plugin Boilerplate uses a variable to store the text domain used when internationalizing strings throughout the Boilerplate. To take advantage of this method, there are tools that are recommended for providing correct, translatable files:

Any of the above tools should provide you with the proper tooling to localize the plugin.

GitHub Updater

The WordPress Plugin Boilerplate includes native support for the GitHub Updater which allows you to provide updates to your WordPress plugin from GitHub.

This uses a new tag in the plugin header:

* GitHub Plugin URI: https://github.com/<owner>/<repo>

Here's how to take advantage of this feature:

  1. Install the GitHub Updater
  2. Replace <owner> with your username and <repo> with the repository of your plugin
  3. Push commits to the master branch
  4. Enjoy your plugin being updated in the WordPress dashboard

The current version of the GitHub Updater supports tags/branches - whichever has the highest number.

To specify a branch that you would like to use for updating, just add a GitHub Branch: header. GitHub Updater will preferentially use a tag over a branch having the same or lesser version number. If the version number of the specified branch is greater then the update will pull from the branch and not from the tag.

The default state is either GitHub Branch: master or nothing at all. They are equivalent.

All that info is in the project.

License

The WordPress Plugin Boilerplate is licensed under the GPL v2 or later.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Important Notes

Licensing

The WordPress Plugin Boilerplate is licensed under the GPL v2 or later; however, if you opt to use third-party code that is not compatible with v2, then you may need to switch to using code that is GPL v3 compatible.

For reference, here's a discussion that covers the Apache 2.0 License used by Bootstrap.

Includes

Note that if you include your own classes, or third-party libraries, there are three locations in which said files may go:

  1. plugin-name/includes is where shared functionality should be placed between public and admin
  2. plugin-name/admin/includes is where dashboard-specific classes and dependencies should be placed
  3. plugin-name/public/includes is where public-specific classes and dependencies should be placed

Assets

The assets directory provides two files that are used to represent plugin header images.

When committing your work to the WordPress Plugin Repository, these files should reside in their own assets directory, not in the root of the plugin. The initial repository will contain three directories:

  1. branches
  2. tags
  3. trunk

You'll need to add an assets directory into the root of the repository. So the final directory structure should include four directories:

  1. assets
  2. branches
  3. tags
  4. trunk

Next, copy the contents of the assets directory that are bundled with the Boilerplate into the root of the repository. This is how the WordPress Plugin Repository will retrieve the plugin header image.

Of course, you'll want to customize the header images from the place holders that are provided with the Boilerplate.

For more, in-depth information about this, read this post by Otto.

Plugin screenshots can be saved to one of two locations:

  1. The old way is to keep them in the root of the plugin directory. This will increase the size of the download of the plugin, but make the images accessible for those who install it. This is deprecated in the WordPress Plugin Boilerplate
  2. With the alternative way, you can save the screenshots in the assets directory, as well. The repository will look here for the screenshot files as well; however, they will not be included in the plugin download thus reducing the size of the plugin. As of its latest version, the WordPress Plugin Boilerplate now follows this convention.

wordpress-plugin-boilerplate's People

Contributors

afragen avatar akshayraje avatar anabelle avatar andrejcremoznik avatar barryceelen avatar bluehiveinteractive avatar bradp avatar cudazi avatar danielantunes avatar emeraldjava avatar ewoutkleinsmann avatar garyjones avatar geertdd avatar grappler avatar haleeben avatar i4web avatar innerbot avatar jameswlane avatar japh avatar leewillis77 avatar manovotny avatar oobites avatar pippinsplugins avatar rockaut avatar thuijssoon avatar tintazul avatar tokkonopapa avatar tommcfarlin avatar tylerdigital avatar wesbos avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.