-
Notifications
You must be signed in to change notification settings - Fork 20
Home
Welcome to the wiki page for wordpress-base-plugin.
More documentation will be added as the plugin evolves.
This plugin uses Carbon Fields to handle custom fields and plugin settings. In order for it to work, you will either need to add it as a Composer dependency or install a compatible Carbon Fields Loader plugin.
To avoid conflicts caused by multiple versions of Carbon Fields being loaded, it is recommended that you use a Carbon Fields Loader plugin.
Simply clone/download it to your plugins folder an activate.
Alternatively, you may also load Carbon Fields as a Composer dependency.
- Add
"htmlburger/carbon-fields": "^2.0.0",to therequiresection ofcomposer.json. - Run
composer update. - This plugin also uses TGMPA to show a notice when the Carbon Fields Loader is not detected. You can remove this check by commenting out the TGMPA line in
app/Plugin.phpor by modifyingapp/TGMPA.phpto exclude it as a requirement.
Translation language files can be created automatically using wp-pot-cli.
- Edit
package.jsonand change thewordpress-base-pluginslugs to that of your plugin. - Run
npm installat the command prompt to installwp-pot-cli. - Run the following command to create a translation file in the
languagesdirectory:npm run translate
The caching class is intended to make it easy to reduce database calls and other resource-intensive operations.
- If object caching is enabled and the key exists, it will be return from cache.
- If either of the above are not true, it will fetch and return the current value.
$my_option = Cache::get_object( '_cache_key_name', function() {
return get_option( '_my_option_name' );
});
$my_option = Cache::get_object( '_cache_key_name', function() {
return carbon_get_theme_option( self::$prefix . '_my_option_name );
});
Additionally, the Plugin class contains a wrapper for retrieving Carbon Fields values:
$my_option = $this->get_plugin_option( '_my_option_name' );
There is also a Cache::flush() function that you can use to clear the cache when the "Save Changes" button (or anywhere appropriate, such as on posts and pages). Example:
add_action('carbon_fields_theme_options_container_saved', array( '\\VendorName\\MyPlugin\\Cache', 'flush' ) );
An easy way to test object caching locally is to install Local by FlyWheel (which loads sites in virtual machines and also includes Redis) and:
- Create a new site.
- Install and activate the Redis Object Cache plugin.
- Click the Enable Object Cache button in Settings > Redis.
You can now enable/disable/flush the cache and test to make sure that everything is functioning as expected.