CFS Options Screens

Description

Build any number of options screens based on Custom Field Suite.

For Example

Begin by creating Field Group(s) you want to include on your options screen. Be sure to set NO Placement Rules. Once it’s created, note the post ID it uses. You can then register any number of options screens like so:

function my_cfs_options_screens( $screens ) {
    $screens[] = array(
        'name'            => 'options',
        'menu_title'      => __( 'Site Options' ),
        'page_title'      => __( 'Customize Site Options' ),
        'menu_position'   => 100,
        'icon'            => 'dashicons-admin-generic', // optional, dashicons-admin-generic is the default
        'field_groups'    => array( 'My Field Group' ), // Field Group name(s) of CFS Field Group to use on this page (can also be post IDs)
    );

    return $screens;
}

add_filter( 'cfs_options_screens', 'my_cfs_options_screens' );

Retrieve your options like so:

$value = cfs_get_option( 'options_screen_name', 'cfs_field_name_from_field_group' );

You can set up multiple top level and/or children options pages by adding a parent argument when registering your screen:

function my_cfs_options_screens( $screens ) {

    // Parent
    $screens[] = array(
        'name'         => 'options',
        'field_groups' => array( 'My Parent Field Group Name' ),
    );

    // Child
    $screens[] = array(
        'name'         => 'options-nav',
        'parent'       => 'options', // name of the parent
        'field_groups' => array( 'My Child Field Group Name' ),
    );

    return $screens;
 }

 add_filter( 'cfs_options_screens', 'my_cfs_options_screens' );

You can also use CFS Options Screens to set up Field Group ‘defaults’, allowing a Field Group to appear both on a CFS Options Screen and a post edit screen. The CFS Options Screen will act as the default/fallback and the post edit screen will override those defaults.

function my_cfs_options_screens( $screens ) {
    $screens[] = array(
        'name'            => 'options',
        'menu_title'      => __( 'Site Options' ),
        'page_title'      => __( 'Customize Site Options' ),
        'menu_position'   => 100,
        'icon'            => 'dashicons-admin-generic', // optional, dashicons-admin-generic is the default
        'field_groups'    => array(
            array(
                'title'         => 'My CFS Field Group Name',
                'has_overrides' => true,
            ),
        ),
    );

    return $screens;
}

add_filter( 'cfs_options_screens', 'my_cfs_options_screens' );

Check out the cfs_options_screens_override_note_default and cfs_options_screens_override_note_override filters to customize the messaging for CFS Options Screens overrides.

Installation

  1. Upload cfs-options-screens to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Register your options screen(s) using the code snippets from this readme

FAQ

How do I add a Field Group to my options screen?

You must specify the Field Group Title(s) in the field_groups parameter when using the cfs_options_screens hook

How do I retrieve saved options?

$value = cfs_get_option( ‘options_screen_name’, ‘field_name_from_field_group’ );

Contributors & Developers

“CFS Options Screens” is open source software. The following people have contributed to this plugin.

Contributors

Translate “CFS Options Screens” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.2.7

  • Add support for using CFS Field Group title instead of ID

1.2.5

  • Better handling of overrides when not viewing a single post

1.2.4

  • PHP Warning cleanup

1.2.3

  • Fixed an issue that would output override note if any Field Group on an Options Screen had one
  • Fixed an issue where multiple override notes would be output when there were multiple override Field Groups

1.2.1

  • PHP Warning cleanup for cfs_get_option

1.2

  • Added support for Field Group defaults/overrides where a Field Group can appear both on a CFS Options Screen and a post edit screen, and ‘fall back’ to the CFS Options Screen where applicable

1.1.2

  • Refined the arguments for the underlying CPT to hide it from the Admin menu, filterable with cfs_options_screens_post_type_args

1.1.1

  • Fixed an issue resulting in a change in WordPress 4.4 that prevented editing options screens

1.1

  • Added new cfs_get_options() function to retrieve all CFS data for an options screen

1.0.3

  • Fixed an issue in WordPress 4.3 where customized edit screen titles were not shown

1.0.2

  • Only show ‘Saved’ update notice when editing an options screen

1.0.1

  • Proper page title is now output when editing a screen

1.0

  • Initial release