Wordpress Plugin built for Croissant stack using Herbert plugin framework.
- Timber
- Advanced Custom Fields
/app/customPostType.php
/widget-loader-acf.php
A Croissant theme (e.g. Troisieme) will traverse plugins directory for 'slm' prefixed sub directories which containwidget-loader-acf.php
at their root. This ACF definition is added to list of widgets available in theme.
/app/hooks/timber_loader_paths.php
Parent theme will include the plugin Twig templates and render using Timber (see lab-troisieme-2015/src/views/partials/widget-container.twig). Therefore we add our plugin paths to Timber's internal array of paths using this filter called by Timber:'timber/loader/paths
.
/app/hooks/slm_plugin_enqueue.php
Just before rendering the plugin template, the parent theme calls Wordpressdo_action('acf_{{name}}_enqueue')
. e.g. (using Timber):
{% do action('slm_'~widget.acf_fc_layout~'_enqueue', widget) %}
The hook name is constructed from the ACF Field Group 'name' inwidget-loader-acf.php
. e.g. 'acf_longform_plugin_enqueue'
app/panels.php
Adds Settings panel for installation specific configuration. Uses ACF definitions.
acf_add_options_sub_page(array(
'page_title' => 'Longform Style Settings',
'menu_title' => 'Longform Settings',
'parent_slug' => 'edit.php?post_type=longform',
));
Specify custom fields using register_field_group($options)
. Best to create in Worpdress Admin and use export function.
$options['location']
will be an array specifying where to display the Custom Fields:
array (
array (
array (
'param' => 'options_page',
'operator' => '==',
'value' => 'acf-options-longform-settings',
),
),
),
Note: If acf_add_options_sub_page
is given 'menu_title' of 'Longform Settings', the location 'value' is 'acf-options-longform-settings' (as above).
Check the current latest tag
git fetch && git tag
Bump the version appropriately and tag
git tag x.x.x
Push to Github. Packagist will receive a hook and update the file
git push origin master --tags