Fulcrum - The customization central repository to extend and custom WordPress. This plugin provides the centralized infrastructure for the custom plugins and theme.
This plugin provides a central location for all redundant functionality. It keeps your plugins and theme DRY, reusable, and modular. It is meant to be extended. Therefore, when you need a feature-specific plugin like a Portfolio, Testimonials, or FAQ, you extend the Fulcrum\Addon\Addon
class in your plugin. Then you configure what service providers you need.
Did you read that last part? It's configuration over code, meaning you configure what you want! (Did you get a tingle?)
Bottom Line: It saves you a ton of time and code in your plugins, which saves you moola.
This plugin is fully crafted in OOP. It utilizes DI Container, Dependency Injection, Polymorphism, Inheritance, etc. It shows you how to build OOP-capable plugins.
It also uses:
- Composer and its autoload functionality in place of filling a function with includes and requires.
- Gulp as it's task runner
- Config files, which abstract the runtime configuration out of the modules and into
fulcrum/config
folder where they belong. - Service Providers for the Addons to utilize, which simply the need-to-know in the addons. Configure and fire them up.
Includes:
- Pimple - as the DI Container
- Shortcodes
- Meta boxes
- Custom Post Types
- Custom Taxonomy
- Widgets
Fulcrum includes some cool packages to make your job more fun.
- Kint - a modern and powerful PHP debugging helper
- Whoops - PHP Errors for Cook Kids
- Carbon - A simple PHP API extension for DateTime.
- Pimple - as the DI Container
Installation from GitHub is as simple as cloning the repo onto your local machine. Typically, I put Fulcrum as a must use plugin. Why? Because the child theme and all custom plugins extend off of it. Therefore, you want it to always be activated.
To install it as a must use, here's what you want to do:
- Open your project and navigate to
wp-content/mu-plugins
. - Then open terminal (or console).
- Then type:
git clone https://github.com/hellfromtonya/Fulcrum.git fulcrum
. - Change the directory by typing:
cd fulcrum
. - Next, run Composer to install all of the assets. Type
composer install
at the root of the Fulcrum folder. - Next, add an auto-launcher to load Fulcrum. If one exists already, then add
require __DIR__ . '/fulcrum/bootstrap.php';
into it. Otherwise, do the following:- Navigate to
fulcrum/mu-loader/
and copy themu-autoloader.php
file. - Paste it into the root of
wp-content/mu-plugins
. - Bam, Fulcrum now loads itself up without you or your client needing to activate it. WooHoo!
- Navigate to
All feedback, bug reports, and pull requests are welcome.