Skip to content
Daniel M. Hendricks edited this page Aug 17, 2017 · 21 revisions

Welcome to the wiki page for wordpress-base-plugin.

More documentation will be added as the plugin evolves.

Dependencies

Carbon Fields

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.

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.

Composer Dependency

Alternatively, you may also load Carbon Fields as a Composer dependency.

  1. Add "htmlburger/carbon-fields": "^2.0.0", to the require section of composer.json.
  2. Run composer update.
  3. 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.php or by modifying app/TGMPA.php to exclude it as a requirement.

Translation

Translation language files can be created automatically using wp-pot-cli.

  1. Edit package.json and change the wordpress-base-plugin slugs to that of your plugin.
  2. Run npm install at the command prompt to install wp-pot-cli.
  3. Run the following command to create a translation file in the languages directory: npm run translate

Usage Examples

Caching

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.

Simple Example

$my_option = Cache::get_object( '_cache_key_name', function() {
  return get_option( '_my_option_name' );
});

Carbon Fields Example

$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' );

Flushing the Cache

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' ) );

Testing

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:

  1. Create a new site.
  2. Install and activate the Redis Object Cache plugin.
  3. 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.

Clone this wiki locally