sb2-media / wordpress-starter-plugin
Central repository for crafting plugins to extend and customize WordPress.
Installs: 31
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 0
Type:wordpress-plugin
pkg:composer/sb2-media/wordpress-starter-plugin
Requires
- php: >=7.0
- composer/installers: ~1.0
- netrivet/wp-event-emitter: ^5.0
- pimple/pimple: ~3.0
Requires (Dev)
- phpunit/phpunit: *@stable
- squizlabs/php_codesniffer: ^3.1
This package is auto-updated.
Last update: 2025-10-07 09:21:29 UTC
README
** In development. Not ready for production.
Central repository for crafting plugins to extend and customize WordPress
Features
- Pimple container dependency injection
- Built-in initialization tasks
- System environment compatibility check
- Plugin constants with ability to add more
- Enqueue manager for enqueuing styles and scripts into WordPress
- Localization - includes a
.potfile as a starting point for internationalization - Class to handle all activation/deactivation/installation tasks
- Modules
- Config - abstracts the runtime configuration out of the modules and into the
configfolder - Event Management - interact with the WordPress Plugin API
- File and template loader
- Config - abstracts the runtime configuration out of the modules and into the
- Composer autoloader
- Follows PSR-4 coding standards
- Includes Laravel Mix for simple webpack implementation
- Custom post type functionality - configured via config file
Requirements
Make sure all dependencies have been installed before moving on:
Installation
- From the command line navigate to your WordPress
mu-pluginsdirectory. - Run this command:
composer create-project sb2-media/wordpress-starter-plugin. - Rename the
wordpress-starter-plugindirectory toyour-plugin-name. - Change into the plugin directory:
cd your-plugin-name. - Update the
package.jsonfile with your info. - Update the main plugin header in
plugin.phpwith your plugin info. - Run
npm install. - Run
npm run dev. - Global search and replace
SB2Media\Hubnamespaces withYourCompanyName\YourPluginName. - Update
composer.jsonwith relevant information including the namespaces defined in theautoloadsection. They must match the namespaces used in the previous step. - Run
composer dump-autoload -o. - In the WordPress dashboard, navigate to the Plugins page and locate the menu item that reads “Your Plugin Name.”
- Click on Activate.
Note that this will activate the source code of the starter plugin, but because it has no real functionality no menu items, meta boxes, or custom post types will be added.
Usage
Enqueuing Assets
Default behavior for enqueueing assets is via two configuration files found in the config folder. Front-end and back-end assets can be defined in enqueue.php and admin-enqueue.php, respectively. Adding multiple files is as simple as adding another entry in the configuration array. This is well-documented in each file.
Alternatively (or in conjunction with), assets can be enqueued via the EnqueueManager class' enqueueStyles and enqueueScripts methods. These are best called in the Plugin class' enqueueAssets and enqueueAdminAssets methods.
Each asset to be enqueued should be placed in the appropriate assets/sass (default for css), assets/css and/or assets/js subfolders. These filed must also be defined in webpack.mix.js in the plugin's root directory and compiled into the appropriate dist/ subfolder by executing npm run dev or npm run production on the command line.
Recommended Tools
i18n Tools
The WordPress Starter Plugin uses a variable to store the text domain used when internationalizing strings throughout. 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 internationalize the plugin.
License
The WordPress Starter Plugin 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
A copy of the license is included in the root of the plugin’s directory. The file is named LICENSE.
Assets
The assets/images directory contains three files.
banner-772x250.pngis used to represent the plugin’s header image.icon-256x256.pngis a used to represent the plugin’s icon image (which is new as of WordPress 4.0).screenshot-1.pngis used to represent a single screenshot of the plugin that corresponds to the “Screenshots” heading in your pluginREADME.txt.
Credits
This starter plugin was originally based on The WordPress Plugin Boilerplate which was started in 2011 by Tom McFarlin. The current version of the Boilerplate was developed in conjunction with Josh Eaton, Ulrich Pogson, and Brad Vincent. The fork which this is directly forked from was developed by Luís Rodrigues.
This plugin also uses code and concepts adapted from Carl Alexander and Tonya Mork's Fulcrum plugin.