log1x/modern-acf-options

A modern take on ACF Theme Options

Fund package maintenance!
Log1x

Installs: 12 978

Dependents: 1

Suggesters: 2

Security: 0

Stars: 29

Watchers: 5

Forks: 2

Open Issues: 0

Language:CSS

Type:wordpress-muplugin

v1.0.3 2020-08-26 21:59 UTC

This package is auto-updated.

Last update: 2023-01-27 03:35:43 UTC


README

Latest Stable Version Total Downloads

Here lives a simple mu-plugin to modernize and brand theme options created with ACF. No admin panels, no bloat – just a simple filter to optionally customize the CSS properties with your color palette.

Screenshot

Requirements

Installation

Bedrock

Install via Composer:

$ composer require log1x/modern-acf-options

Manual

Download the release .zip and install into wp-content/plugins.

Usage

The styling for Modern ACF Options requires the usage of seamless mode and tabs with their placement set to left.

Example using ACF Builder

use StoutLogic\AcfBuilder\FieldsBuilder;

acf_add_options_page([
    'page_title' => get_bloginfo('name'),
    'menu_title' => 'Theme Options',
    'menu_slug' => 'theme-options',
    'update_button' => 'Update Options',
    'capability' => 'edit_theme_options',
    'position' => '999',
    'autoload' => true,
]);

$options = new FieldsBuilder('theme_options', [
    'style' => 'seamless',
]);

$options
    ->setLocation('options_page', '==', 'theme-options');

$options
    ->addTab('general')
        ->setConfig('placement', 'left')

        ->addAccordion('customization')
          ->addImage('logo')

        ->addAccordion('tracking')
            ->addText('gtm')
                ->setConfig('label', 'Google Tag Manager')
        ->addAccordion('tracking_end')->endpoint()

    ->addTab('advanced')
        ->setConfig('placement', 'left')

        ->addTrueFalse('debug')
          ->setConfig('ui', '1');

acf_add_local_field_group($options->build());

Customization

To customize the color palette, simply pass an array containing one or more of the colors you would like to change to the acf_color_palette filter:

add_filter('acf_color_palette', function () {
    return [
        'brand' => '#0073aa',
        'trim' => '#181818',
    ];
});

Disabling Screen Options Tab

use Illuminate\Support\Str;

/**
 * Disable Screen Options on the theme options page.
 *
 * @param  bool       $show
 * @param  \WP_Screen $screen
 * @return bool
 */
add_filter('screen_options_show_screen', function ($show, $screen) {
    if (is_a($screen, 'WP_Screen') && Str::contains($screen->base, 'theme-options')) {
        return false;
    }
}, 1, 2);

Remove Admin Footer Text

/**
 * Remove admin footer text.
 *
 * @return bool
 */
add_filter('admin_footer_text', '__return_false', 100);

Development

Modern ACF Options is built using TailwindCSS and compiled with Laravel Mix.

$ yarn install
$ yarn run start

Todo

  • Continue optimizing/cleaning up existing styles.
  • Add styles for ACF switches, input fields (focus, hover), buttons, etc.

Bug Reports

If you discover a bug in Modern ACF Options, please open an issue.

Contributing

Contributing whether it be through PRs, reporting an issue, or suggesting an idea is encouraged and appreciated.

License

Modern ACF Options is provided under the MIT License.