Skip to content

Configuration

Tada Burke edited this page Jun 2, 2017 · 111 revisions

Wireframe Theme is pre-configured with default config data for the most common use cases. Wireframe Theme performs the heavy lifting via objects (PHP class files). Your objects power-up when you wire config data through them. The quickest way to custom configure Wireframe Theme is simply by adjusting each config file.

Config Files

Each config file is comprised of a single function which returns an array of arguments you define. Below is a list of the current config files packaged with Wireframe Theme. Every config file has a cfg- prefix in its filename to make it easily identifiable.

Config Functions

Shared Arguments

The shared arguments below will be used in every config function because every object needs these properties to be declared.

Variable Type Description
$wired (bool) Wires actions & filters via __construct() magic method, e.g. when object instantiates.
$prefix (string) Prefix for various strings, handles, scripts, etc.
$actions (array) Actions to be hoooked.
$filters (array) Filters to be hooked.

Using Configs

Config functions return data that can be passed into objects. Every object needs some form of data in order to work. Generally, every time you instantiate your objects, you should pass-in a config function as an object parameter. To see what happens when you pass data to your objects, you should view the __construct() magic method of an object.

Example of a Services closure instantiating a Module_Features object with a config function being passed in:

$wireframe_theme_container->features = function () {
    return new Module_Features( wireframe_theme_cfg_features() );
};

Example of your config data passed through an object's constructor:

public function __construct( $config ) {

	$this->_custom_header        = $config['custom_header'];
	$this->_content_width        = $config['content_width'];
	$this->_post_thumbnails      = $config['post_thumbnails'];
	$this->_post_thumbnails_size = $config['post_thumbnails_size'];
	$this->_feed_links           = $config['feed_links'];
	$this->_nav_menus            = $config['nav_menus'];
	$this->_post_formats         = $config['post_formats'];
	$this->_custom_background    = $config['custom_background'];
	$this->_html5                = $config['html5'];
	$this->_title_tag            = $config['title_tag'];
	$this->_custom_logo          = $config['custom_logo'];
	$this->_selective_refresh    = $config['selective_refresh'];
	$this->_starter_content      = $config['starter_content'];

	parent::__construct( $config );
}

Function Reference

You should reference each argument inside your config functions to see what they do. Also, you can reference some example code below for each config function to view the proper array syntax you should use.

wireframe_theme_cfg_admin()

This function returns config data for the Module_Admin object.

Parameters

Parameter Type Description
None None This function does not have parameters.

Custom Arguments

Variable Type Description
$styles (array) Styles to be hooked.
$scripts (array) Scripts to be hooked.
$mediamodal (bool) True will load the Media Modal script.
$enqueue (object) Instantiate Core_Enqueue with $prefix, $styles, $scripts, $mediamodal.
$theme_page (array) Theme pages to register.
$menu_pages (array) Menu pages to register.
$submenu_pages (array) Sub menu pages to register.

Return

Return Type Description
return (array) Holds arguments to be passed into the Module_Admin object.

Examples

Example array for $menu_pages:

$menu_pages = array(
    'menu_pages' => array(
        'page_title' => WIREFRAME_THEME_PRODUCT,
        'menu_title' => WIREFRAME_THEME_PRODUCT,
        'capability' => 'manage_options',
        'menu_slug'  => sanitize_title( WIREFRAME_THEME_TEXTDOMAIN ),
        'function'   => 'wireframe_theme_admin_page_callback_quickstart',
        'icon_url'   => esc_url( '' ),
        'position'   => 8888,
    ),
);

Example array for $submenu_pages:

$submenu_pages = array(
    'quickstart' => array(
        'parent_slug' => sanitize_title( WIREFRAME_THEME_TEXTDOMAIN ),
        'page_title'  => 'Quickstart',
        'menu_title'  => 'Quickstart',
        'capability'  => 'manage_options',
        'menu_slug'   => sanitize_title( WIREFRAME_THEME_TEXTDOMAIN ),
        'function'    => 'wireframe_theme_admin_page_callback_quickstart',
    ),
);

See

Source

Top


wireframe_theme_cfg_customizer()

This function returns config data for the Module_Customizer object.

Parameters

Parameter Type Description
None None This function does not have parameters.

Custom Arguments

Variable Type Description
$styles (array) Styles to be hooked.
$scripts (array) Scripts to be hooked.
$settings (array) Registers new Customizer settings.
$partials (array) Registers new Customizer partials.
$controls (array) Registers new Customizer controls (not custom controls).
$panels (array) Registers new Customizer panels.
$sections (array) Registers new Customizer sections.
$enqueue (object) Instantiate Core_Enqueue with $prefix, $styles, $scripts, $mediamodal.
$inline (array) Inline styles to .

Return

Return Type Description
return (array) Holds arguments to be passed into the Module_Customizer object.

Examples

Example array for $settings:

$settings = array(
    'example_setting',
    array(
        'default'           => '#2ba6cb',
        'type'              => 'theme_mod',
        'capability'        => 'edit_theme_options',
        'transport'         => 'postMessage',
        'sanitize_callback' => 'sanitize_hex_color',
    ),
);

Example array for $partials:

$partials = array(
    'blogname',
    array(
        'selector'        => '.site-title a',
        'render_callback' => function() {
            bloginfo( 'name' );
        },
        'container_inclusive' => false,
    ),
);

Example array for $controls:

$controls = array(
    'example_control',
    array(
        'section'  => 'example_section',
        'settings' => 'example_setting',
        'priority' => 1,
        'type'     => 'radio',
        'choices'  => array(
            'eenie'  => __( 'Eenie', 'wireframe-theme' ),
            'meenie' => __( 'Meenie', 'wireframe-theme' ),
            'mynee'  => __( 'Mynee', 'wireframe-theme' ),
            'mo'     => __( 'Mo', 'wireframe-theme' ),
        ),
        'label'       => __( 'Example Control', 'wireframe-theme' ),
        'description' => __( 'Just an example custom control. To modify $controls, see the Customizer section in your functions.php file.', 'wireframe-theme' ),
        'active_callback' => '',
        'control_class'   => null,
    ),
    'link_color',
    array(
        'section'         => 'colors',
        'settings'        => 'link_color',
        'priority'        => 10,
        'label'           => __( 'Link Color', 'wireframe-theme' ),
        'description'     => __( 'Descriptions goes here...', 'wireframe-theme' ),
        'active_callback' => '',
        'control_class'   => 'WP_Customize_Color_Control',
    ),
);

Example array for $panels:

$panels = array(
    'example_panel',
    array(
        'priority'       => 1,
        'capability'     => 'edit_theme_options',
        'theme_supports' => '',
        'title'          => __( 'Example Panel', 'wireframe-theme' ),
        'description'    => __( 'Just an example of a custom panel. To modify $panels, see the Customizer section in your functions.php file.', 'wireframe-theme' ),
    ),
);

Example array for $secions:

$sections = array(
    'example_section',
    array(
        'priority'       => 1,
        'panel'          => 'example_panel',
        'capability'     => 'edit_theme_options',
        'theme_supports' => '',
        'title'          => __( 'Example Section', 'wireframe-theme' ),
        'description'    => __( 'Just an example of a custom section. To modify $sections, see the Customizer section in your functions.php file.', 'wireframe-theme' ),
    ),
);

Example $enqueue object instantiation:

$enqueue = new Core_Enqueue( $prefix, $styles, $scripts );

Example array for $inline:

$inline = array(
    'body',
    array(
        'style'    => 'background-color',
        'mod_name' => 'background_color',
        'prefix'   => '#',
        'postfix'  => '',
        'echo'     => true,
    ),
);

See

Source

Top


wireframe_theme_cfg_editor()

This function returns config data for the Module_Editor object.

Parameters

Parameter Type Description
None None This function does not have parameters.

Custom Arguments

Variable Type Description
$editor_style (array) Path to the TinyMCE editor custom stylesheet.
$style_formats (array) Add Style Formats arrays to the TinyMCE editor.

Return

Return Type Description
return (array) Holds arguments to be passed into the Module_Editor object.

Examples

Example string for $editor_style:

$editor_style = WIREFRAME_THEME_CSS . 'editor-style-min';

See

Source

Top


wireframe_theme_cfg_features()

This function returns config data for the Module_Features object.

Parameters

Parameter Type Description
None None This function does not have parameters.

Custom Arguments

Variable Type Description
$custom_header (array) Image for the theme top header section.
$content_width (array) Maximum allowed width for any content.
$post_thumbnails (array) Enable Post Thumbnails on certain post types.
$post_thumbnails_size (array) Size of the Post Thumbnails.
$feed_links (array) Enables Automatic Feed Links.
$nav_menus (array) Registers navigation menu locations for your theme.
$post_formats (array) Enables Post Formats support.
$custom_background (array) Enables custom backgrounds and colors.
$html5 (array) Enables HTML5 markup for search & comment forms.
$title_tag (array) Enables management of the document title tag.
$custom_logo (array) Enables custom logos.
$selective_refresh (array) Enables selective refresh in the Customizer.
$starter_content (array) To be determined.

Return

Return Type Description
return (array) Holds arguments to be passed into the Module_Features object.

Examples

Example array for $custom_header:

$custom_header = array(
    'default-image'          => '',
    'random-default'         => true,
    'width'                  => 2000,
    'height'                 => 400,
    'flex-height'            => true,
    'flex-width'             => true,
    'default-text-color'     => '000000',
    'header-text'            => true,
    'uploads'                => true,
    'wp-head-callback'       => 'wireframe_theme_custom_header_css',
    'admin-head-callback'    => '',
    'admin-preview-callback' => '',
);

Example array for $post_formats:

$post_formats = array(
    'aside',
    'image',
    'video',
    'quote',
    'link',
    'gallery',
    'status',
    'audio',
    'chat',
);

Exammple array for $custom_background:

$custom_background = array(
    'default-color'          => 'ffffff',
    'default-image'          => '',
    'wp-head-callback'       => '_custom_background_cb',
    'admin-head-callback'    => '',
    'admin-preview-callback' => '',
);

Example array for $custom_logo:

$custom_logo = array(
    'height'      => 100,
    'width'       => 400,
    'flex-height' => true,
    'flex-width'  => true,
    'header-text' => array(
        'site-title',
        'site-description',
    ),
);

See

Source

Top


wireframe_theme_cfg_language()

This function returns config data for the Core_Language object.

Parameters

Parameter Type Description
None None This function does not have parameters.

Custom Arguments

Variable Type Description
$module (string) Is this module for a theme or a plugin?
$deprecated (bool) Use the $plugin_rel_path parameter instead?
$path (string) Path to language .mo file.

Return

Return Type Description
return (array) Holds arguments to be passed into the Core_Language object.

Examples

$path = WIREFRAME_THEME_LANG;

See

Source

Top


wireframe_theme_cfg_navigation()

This function returns config data for the Module_Navigation object.

Parameters

Parameter Type Description
None None This function does not have parameters.

Custom Arguments

Variable Type Description
$primary_menu (array) Registers the primary menu for your theme.
$secondary_menu (array) Registers the secondary menu for your theme.
$tertiary_menu (array) Registers the tertiary menu for your theme.

Return

Return Type Description
return (array) Holds arguments to be passed into the Module_Navigation object.

Examples

$args = array(
    'primary_menu'   => array(
        'menu'            => '',
        'menu_class'      => 'menu nav-menu',
        'menu_id'         => 'primary-menu',
        'container'       => 'div',
        'container_class' => 'menu-all-pages-container',
        'container_id'    => '',
        'fallback_cb'     => '',
        'before'          => '',
        'after'           => '',
        'link_before'     => '',
        'link_after'      => '',
        'echo'            => true,
        'depth'           => 0,
        'walker'          => $walker,
        'theme_location'  => 'primary',
        'items_wrap'      => '<div><ul id="%1$s" class="%2$s">%3$s</ul></div>',
    ),
    'secondary_menu' => array(),
    'tertiary_menu'  => array(),
);

See

Source

Top


wireframe_theme_cfg_notices()

This function returns config data for the Module_Notices object.

Parameters

Parameter Type Description
None None This function does not have parameters.

Custom Arguments

Variable Type Description
$notices (array) Registers notices to be hooked.

Return

Return Type Description
return (array) Holds arguments to be passed into the Module_Notices object.

Examples

$notices = array(
    'error_init' => array(
        'selectors' => 'notice notice-warning is-dismissible',
        'subject'   => '<strong>Wireframe Theme:</strong>',
        'message'   => WIREFRAME_THEME_PRODUCT . ' failed to initialize. Please verify your setup.',
    ),
    'warn_activated' => array(
        'selectors' => 'notice notice-warning is-dismissible',
        'subject'   => '<strong>Wireframe Theme:</strong>',
        'message'   => 'This parent theme is intended for <em>Theme Developers</em> and <strong>does not have any styling</strong>. Did you know Wireframe also has a <a href="/mixatheme/wireframe-child">child theme</a> with default styling? We recommend only Developers modify the parent theme. In most cases, creating unique and inspiring <a href="/mixatheme/wireframe-child">child themes</a> is best practice.',
    ),
);

See

Source

Top


wireframe_theme_cfg_ui()

This function returns config data for the Module_UI object.

Parameters

Parameter Type Description
None None This function does not have parameters.

Custom Arguments

Variable Type Description
$enqueue (object) Instantiate Core_Enqueue with $prefix, $styles, $scripts, $mediamodal.

Return

Return Type Description
return (array) Holds arguments to be passed into the Module_UI object.

Examples

$enqueue = new Core_Enqueue( $prefix, $styles, $scripts, $mediamodal, $stylecss, $commentjs );

See

Source

Top


wireframe_theme_cfg_widgets()

This function returns config data for the Module_Widgets object.

Parameters

Parameter Type Description
None None This function does not have parameters.

Custom Arguments

Variable Type Description
$registered (array) Widgets to register.
$unregistered (array) Widgets to unregister (in development).

Return

Return Type Description
return (array) Holds arguments to be passed into the Module_Widgets object.

Examples

$registered = array(
    'primary' => array(
        'name'          => __( 'Primary', 'wireframe-theme' ),
        'id'            => 'sidebar-1',
        'description'   => __( 'Add important widgets here.', 'wireframe-theme' ),
        'before_widget' => '<section id="%1$s" class="widget %2$s clearfix">',
        'after_widget'  => '</section>',
        'before_title'  => '<h2 class="widget-title">',
        'after_title'   => '</h2>',
    ),
    'secondary' => array(
        'name'          => __( 'Secondary', 'wireframe-theme' ),
        'id'            => 'sidebar-2',
        'description'   => __( 'Add secondary widgets here.', 'wireframe-theme' ),
        'before_widget' => '<section id="%1$s" class="widget %2$s clearfix">',
        'after_widget'  => '</section>',
        'before_title'  => '<h2 class="widget-title">',
        'after_title'   => '</h2>',
    ),
    'tertiary' => array(
        'name'          => __( 'Tertiary', 'wireframe-theme' ),
        'id'            => 'sidebar-3',
        'description'   => __( 'Add tertiary widgets here.', 'wireframe-theme' ),
        'before_widget' => '<section id="%1$s" class="widget %2$s clearfix">',
        'after_widget'  => '</section>',
        'before_title'  => '<h2 class="widget-title">',
        'after_title'   => '</h2>',
    ),
);

See

Source

Top