__( 'Regular french fries', 'make-child' ), * 'cajun' => __( 'Cajun spiced fries', 'make-child' ), * 'sweetpotato' => __( 'Sweet potato fries', 'make-child' ), * ); * * In order to ensure that all choice sets have been added and updated before they are used by the theme, this function * should only be called during the `make_choices_loaded` action. * * @link https://thethemefoundry.com/docs/make-docs/code/apis/choices-api/ * * @since 1.7.0. * * @param string $set_id A unique string to identify the choice set. * @param array $choices An array of value/label pairs. * * @return bool True if the choice set was successfully added/updated. */ function make_update_choice_set( $set_id, $choices ) { // Make sure we're not doing it wrong. if ( 'make_choices_loaded' !== current_action() ) { Make()->compatibility()->doing_it_wrong( __FUNCTION__, sprintf( esc_html__( 'This function should only be called during the %s action.', 'make' ), 'make_choices_loaded' ), '1.7.0' ); } // Construct the set $choice_set = array( $set_id => (array) $choices ); return Make()->choices()->add_choice_sets( $choice_set, true ); } /** * Add one or more fonts, under their own heading, to the list of available fonts in the * Customizer's Font Family dropdowns. * * A font source consists of a unique ID, a public label, an optional priority, and an associative array of data for the * actual fonts that the source contains. Each font in the data array is represented by an array item whose key is the * font's setting value and whose value is an array of properties. The required properties are a label and a font stack. * * $id = 'epic'; * $label = __( 'Literally Epic Fonts', 'make-child' ); * $priority = 1; * $data = array( * 'Comic Papyrus' => array( * 'label' => __( 'Comic Papyrus', 'make-child' ), * 'stack' => '"Comic Papyrus", "Comic Sans", "Papyrus", sans-serif', * ), * 'Wing Dings 98' => array( * 'label' => __( 'Wing Dings 98', 'make-child' ), * 'stack' => '"Wing Dings 98", sans-serif', * ), * ); * * @link https://thethemefoundry.com/docs/make-docs/code/apis/font-api/ * * @since 1.7.0. * * @param string $id A unique string to identify the source. * @param string $label The public name of the font source. * @param array $data The array of fonts to add and their properties. * @param int $priority Optional. The order this source should appear in the list of all available fonts. * Higher number = further down the list. * * @return bool True if the font source was successfully added. */ function make_add_font_source( $id, $label, $data = array(), $priority = 10 ) { // Make sure we're not doing it wrong. if ( 'make_font_loaded' !== current_action() ) { Make()->compatibility()->doing_it_wrong( __FUNCTION__, sprintf( esc_html__( 'This function should only be called during the %s action.', 'make' ), 'make_font_loaded' ), '1.7.0' ); } $source = new MAKE_Font_Source_Base( $id, $label, $data, $priority ); return Make()->font()->add_source( $id, $source ); } /** * Add or update a view definition. * * Make uses "views" to determine which layout settings to apply to a given page load. * * A view definition consists of a view ID that corresponds to an array of properties. The required properties for a * view are a label and a callback function that determines whether it qualifies to be the current view. A third, * optional property is priority, which determines which view will take precedent when the current view qualifies for * multiple views. A higher priority will take precedent over a lower. * * $view_id = 'page'; * $args = array( * 'label' => __( 'Page', 'make-child' ), * 'callback' => 'is_page', * 'priority' => 10, * ); * * When updating an existing definition, only the properties that are changing need to be included in the $args array. * * In order to ensure that all view definitions have been added and updated before they are used by the theme, this * function should only be called during the `make_view_loaded` action. * * @since 1.7.0. * * @param string $view_id A unique string to identify the view. * @param array $args { * An array of properties for the view. * * @type string $label The public name of the view. May appear in the UI. * @type string|array $callback A callable that returns a boolean value that answers "Is this the current view?" * @type int $priority A number that indicates when the view's callback will be evaluated. * Higher = later = higher precedence. * @type mixed $various Any arbitrary key/value pair can be added to a view definition. * } * * @return bool True if the view definition was successfully added/updated. */ function make_update_view_definition( $view_id, $args ) { // Make sure we're not doing it wrong. if ( 'make_view_loaded' !== current_action() ) { Make()->compatibility()->doing_it_wrong( __FUNCTION__, sprintf( esc_html__( 'This function should only be called during the %s action.', 'make' ), 'make_view_loaded' ), '1.7.0' ); } // Cast the args $args = (array) $args; return Make()->view()->add_view( $view_id, $args, true ); } /** * Add or update a setting definition. * * Make provides a lot of customization options through the Customizer, and each of these is represented by a "setting". * A setting consists of an ID that is tied to a particular value. * * A setting definition consists of an ID that corresponds to an array of properties. The required properties for a * setting are a default value and a callback that validates and sanitizes a setting's value before it is used by the * theme. * * $setting_id = 'my-site-rocks'; * $args = array( * 'default' => true, * 'sanitize' => 'wp_validate_boolean', * ); * * When updating an existing definition, only the properties that are changing need to be included in the $args array. * * In order to ensure that all setting definitions have been added and updated before they are used by the theme, this * function should only be called during the `make_settings_thememod_loaded` action. * * @since 1.7.0. * * @param string $setting_id A unique string to identify the setting. * @param array $args { * An array of properties for the setting. * * @type mixed $default The default value for the setting. * @type string|array $sanitize A callable that validates and sanitizes a setting's value before it is used by * the theme. * @type mixed $various Any arbitrary key/value pair can be added to a setting definition. * } * * @return bool True if the setting definition was successfully added/updated. */ function make_update_thememod_setting_definition( $setting_id, $args ) { // Make sure we're not doing it wrong. if ( 'make_settings_thememod_loaded' !== current_action() ) { Make()->compatibility()->doing_it_wrong( __FUNCTION__, sprintf( esc_html__( 'This function should only be called during the %s action.', 'make' ), 'make_settings_thememod_loaded' ), '1.7.0' ); } // Construct the setting definition $setting_definition = array( $setting_id => (array) $args ); return Make()->thememod()->add_settings( $setting_definition, array(), true ); } /** * Add or update a social icon definition. * * Make allows users to add links to their online profiles to the header and/or footer of their site. These links are * represented by icons that correspond to the services providing the online profiles. * * An icon definition consists of a URL pattern that corresponds to an array of icon properties. The required properties * for an icon are a title and an array of CSS classes that will be applied to the icon's HTML element. * * $pattern = 'myspace.com'; * $args = array( * 'title' => __( 'MySpace', 'make-child' ), * 'class' => array( 'my-cool-icon-font', 'mcif-myspace' ), * ); * * When updating an existing definition, only the properties that are changing need to be included in the $args array. * * In order to ensure that all icon definitions have been added and updated before they are used by the theme, this * function should only be called during the `make_socialicons_loaded` action. * * @since 1.7.0. * * @param string $pattern A unique pattern string that will be used to match a URL to a particular icon. * @param array $args { * An array of properties for the icon. * * @type string $title The public name of the social profile service that corresponds to the icon. * @type array $class An array of class name strings. * } * * @return bool True if the icon definition was successfully added/updated. */ function make_update_socialicon_definition( $pattern, $args ) { // Make sure we're not doing it wrong. if ( 'make_socialicons_loaded' !== current_action() ) { Make()->compatibility()->doing_it_wrong( __FUNCTION__, sprintf( esc_html__( 'This function should only be called during the %s action.', 'make' ), 'make_socialicons_loaded' ), '1.7.0' ); } // Construct the icon definition $icon_definition = array( $pattern => (array) $args ); return Make()->socialicons()->add_icons( $icon_definition, true ); } /** * Add a style rule. * * Many of Make's settings modify the site's appearance and style. Because the style rules for these settings have * dynamic values and may be different for different views, they cannot be added to a normal stylesheet, but must * instead be generated programmatically. * * A style rule consists of an array containing a selectors item, a declarations item, and optionally a media query * item. * * $args = array( * 'selectors' => array( '.site-header', '.site-footer' ), * 'declarations' => array( * 'background-color' => '#00ff00', * 'font-size' => '27px' * ), * 'media' => 'screen and (min-width: 800px)', * ); * * Note that styles that do not have dynamic values should be added to a stylesheet file instead of programmatically. * * @since 1.7.0. * * @param array $args { * An array containing the selectors, declarations, and optional media query for the style rule. * * @type array $selectors A numeric array of CSS selectors. * @type array $declarations An associative array of CSS property/value pairs. * @type string $media Optional. A media query string. * } * * @return void */ function make_add_style_rule( $args ) { // Make sure we're not doing it wrong. if ( 'make_style_loaded' !== current_action() ) { Make()->compatibility()->doing_it_wrong( __FUNCTION__, sprintf( esc_html__( 'This function should only be called during the %s action.', 'make' ), 'make_style_loaded' ), '1.7.0' ); } // Cast args $args = (array) $args; // Validate the rule args if ( ! isset( $args['selectors'] ) || ! isset( $args['declarations'] ) ) { $error_message = __( 'The style rule does not have the required properties.', 'make' ) . $this->error()->generate_backtrace(); Make()->error()->add_error( 'make_style_invalid_rule', $error_message ); return; } Make()->style()->css()->add( $args ); }