/** * Configure settings and controls for the Site Title & Tagline section. * * @since 1.0.0. * * @return void */ function ttfmake_customizer_sitetitletagline() { global $wp_customize; $theme_prefix = 'ttfmake_'; $section_id = 'title_tagline'; $section = $wp_customize->get_section($section_id); $priority = new TTFMAKE_Prioritizer(10, 5); // Move Site Title & Tagline section to General panel $section->panel = $theme_prefix . 'general'; // Set Site Title & Tagline section priority $logo_priority = $wp_customize->get_section($theme_prefix . 'logo')->priority; $section->priority = $logo_priority - 5; // Reset priorities on Site Title control $wp_customize->get_control('blogname')->priority = $priority->add(); // Hide Site Title option $options = array('hide-site-title' => array('setting' => array('sanitize_callback' => 'absint'), 'control' => array('label' => __('Hide Site Title', 'make'), 'type' => 'checkbox'))); $new_priority = ttfmake_customizer_add_section_options($section_id, $options, $priority->add()); $priority->set($new_priority); // Reset priorities on Tagline control $wp_customize->get_control('blogdescription')->priority = $priority->add(); // Hide Tagline option $options = array('hide-tagline' => array('setting' => array('sanitize_callback' => 'absint'), 'control' => array('label' => __('Hide Tagline', 'make'), 'type' => 'checkbox'))); $new_priority = ttfmake_customizer_add_section_options($section_id, $options, $priority->add()); $priority->set($new_priority); }
/** * Configure settings and controls for the Background section. * * @since 1.0.0. * * @return void */ function ttfmake_customizer_background() { global $wp_customize; $theme_prefix = 'ttfmake_'; $section_id = 'background_image'; $section = $wp_customize->get_section($section_id); $priority = new TTFMAKE_Prioritizer(10, 5); // Bail if the section isn't registered if (!is_object($section) || 'WP_Customize_Section' !== get_class($section)) { return; } // Move and rename Background Color control to Global section of Color panel $wp_customize->get_control('background_color')->section = $theme_prefix . 'color'; $wp_customize->get_control('background_color')->label = __('Site Background Color', 'make'); $wp_customize->get_control('background_color')->priority = (int) $wp_customize->get_control($theme_prefix . 'color-group-global-background')->priority + 5; // Move Background Image section to Background Images panel $section->panel = $theme_prefix . 'background-images'; // Set section title $section->title = __('Site', 'make'); // Set section priority $header_priority = $wp_customize->get_section($theme_prefix . 'header-background')->priority; $section->priority = $header_priority - 5; // Reconfigure image and repeat controls $wp_customize->get_control('background_image')->label = __('Background Image', 'make'); $wp_customize->get_control('background_image')->priority = $priority->add(); $wp_customize->get_control('background_repeat')->label = __('Repeat', 'make'); $wp_customize->get_control('background_repeat')->priority = $priority->add(); // Remove position and attachment controls $wp_customize->remove_control('background_position_x'); $wp_customize->remove_control('background_attachment'); // Add replacement and new controls $options = array('background_position_x' => array('setting' => array('sanitize_callback' => 'ttfmake_sanitize_choice'), 'control' => array('control_type' => 'TTFMAKE_Customize_Background_Position_Control', 'label' => __('Position', 'make'), 'type' => 'radio', 'choices' => ttfmake_get_choices('background_position_x'))), 'background_attachment' => array('setting' => array('sanitize_callback' => 'ttfmake_sanitize_choice'), 'control' => array('control_type' => 'TTFMAKE_Customize_Radio_Control', 'label' => __('Attachment', 'make'), 'type' => 'radio', 'mode' => 'buttonset', 'choices' => ttfmake_get_choices('background_attachment'))), 'background_size' => array('setting' => array('sanitize_callback' => 'ttfmake_sanitize_choice'), 'control' => array('control_type' => 'TTFMAKE_Customize_Radio_Control', 'label' => __('Size', 'make'), 'type' => 'radio', 'mode' => 'buttonset', 'choices' => ttfmake_get_choices('background_size')))); $new_priority = ttfmake_customizer_add_section_options($section_id, $options, $priority->add()); $priority->set($new_priority); }
/** * Configure settings and controls for the Navigation section. * * @since 1.0.0. * * @return void */ function ttfmake_customizer_navigation() { global $wp_customize; $theme_prefix = 'ttfmake_'; $section_id = 'nav'; // The Navigation section only exists if custom menus have been created. if (!isset($wp_customize->get_section($section_id)->title)) { $wp_customize->add_section('nav'); } $section = $wp_customize->get_section($section_id); $priority = new TTFMAKE_Prioritizer(10, 5); // Move Navigation section to Header panel $section->panel = $theme_prefix . 'header'; // Set Navigation section priority $layout_priority = $wp_customize->get_section($theme_prefix . 'header')->priority; $section->priority = $layout_priority - 5; // Adjust section title if no panel support if (!ttfmake_customizer_supports_panels()) { $panels = ttfmake_customizer_get_panels(); if (isset($panels['header']['title'])) { $section->title = $panels['header']['title'] . ': ' . $section->title; } } // Move the Social Profile Links option to the General > Social section $social_menu = $wp_customize->get_control('nav_menu_locations[social]'); $social_menu->section = $theme_prefix . 'social'; $social_menu->description = __('After you have created your custom menu for social profile links, select it here.', 'make'); $custom_menu_text_priority = $wp_customize->get_control($theme_prefix . 'social-custom-menu-text')->priority; $social_menu->priority = $custom_menu_text_priority + 1; /** * Adjust Navigation section description * * Since the Social Profile Links item gets moved to another section, the part of the description that * states the number of menu locations is misleading. */ $section->description = __('Select which menu appears in each location. You can edit your menu content on the Menus screen in the Appearance section.', 'make'); // Add new options $options = array('navigation-mobile-label' => array('setting' => array('sanitize_callback' => 'esc_html', 'theme_supports' => 'menus', 'transport' => 'postMessage'), 'control' => array('label' => __('Mobile Menu Label', 'make'), 'description' => __('Resize your browser window to preview the mobile menu label.', 'make'), 'type' => 'text'))); $new_priority = ttfmake_customizer_add_section_options($section_id, $options, $priority->add()); $priority->set($new_priority); }
/** * Configure settings and controls for the Background section. * * @since 1.0.0. * * @return void */ function ttfmake_customizer_background() { global $wp_customize; $theme_prefix = 'ttfmake_'; $section_id = 'background_image'; $section = $wp_customize->get_section($section_id); $priority = new TTFMAKE_Prioritizer(10, 5); // Move and rename Background Color control to General section of Color Scheme panel $wp_customize->get_control('background_color')->section = $theme_prefix . 'color-background'; $wp_customize->get_control('background_color')->label = __('Site Background Color', 'make'); // Move Background Image section to General panel $section->panel = $theme_prefix . 'general'; // Set Background Image section priority $logo_priority = $wp_customize->get_section($theme_prefix . 'logo')->priority; $section->priority = $logo_priority + 5; // Adjust section title if no panel support if (!ttfmake_customizer_supports_panels()) { $panels = ttfmake_customizer_get_panels(); if (isset($panels['general']['title'])) { $section->title = $panels['general']['title'] . ': ' . $section->title; } } // Rename Background Image controls $wp_customize->get_control('background_image')->label = __('Site Background Image', 'make'); $wp_customize->get_control('background_repeat')->label = __('Site Background Repeat', 'make'); $wp_customize->get_control('background_position_x')->label = __('Site Background Position', 'make'); $wp_customize->get_control('background_attachment')->label = __('Site Background Attachment', 'make'); // Reset priorities on existing controls $wp_customize->get_control('background_image')->priority = $priority->add(); $wp_customize->get_control('background_repeat')->priority = $priority->add(); $wp_customize->get_control('background_position_x')->priority = $priority->add(); $wp_customize->get_control('background_attachment')->priority = $priority->add(); // Add new option for Site background image $options = array('background_size' => array('setting' => array('sanitize_callback' => 'ttfmake_sanitize_choice'), 'control' => array('label' => __('Site Background Size', 'make'), 'type' => 'radio', 'choices' => ttfmake_get_choices('background_size')))); $new_priority = ttfmake_customizer_add_section_options($section_id, $options, $priority->add()); $priority->set($new_priority); // Add options for Main Column background image $options = array('main-background-image' => array('setting' => array('sanitize_callback' => 'esc_url_raw'), 'control' => array('control_type' => 'TTFMAKE_Customize_Image_Control', 'label' => __('Main Column Background Image', 'make'), 'context' => $theme_prefix . 'main-background-image')), 'main-background-repeat' => array('setting' => array('sanitize_callback' => 'ttfmake_sanitize_choice'), 'control' => array('label' => __('Main Column Background Repeat', 'make'), 'type' => 'radio', 'choices' => ttfmake_get_choices('main-background-repeat'))), 'main-background-position' => array('setting' => array('sanitize_callback' => 'ttfmake_sanitize_choice'), 'control' => array('label' => __('Main Column Background Position', 'make'), 'type' => 'radio', 'choices' => ttfmake_get_choices('main-background-position'))), 'main-background-size' => array('setting' => array('sanitize_callback' => 'ttfmake_sanitize_choice'), 'control' => array('label' => __('Main Column Background Size', 'make'), 'type' => 'radio', 'choices' => ttfmake_get_choices('main-background-size')))); $new_priority = ttfmake_customizer_add_section_options($section_id, $options, $priority->add()); $priority->set($new_priority); }
/** * Add sections and controls to the customizer. * * Hooked to 'customize_register' via ttfmake_customizer_init(). * * @since 1.0.0. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. * @return void */ function ttfmake_customizer_add_sections($wp_customize) { $theme_prefix = 'ttfmake_'; $default_path = get_template_directory() . '/inc/customizer/sections'; $panels = ttfmake_customizer_get_panels(); // Load built-in section mods $builtin_mods = array('background', 'navigation', 'site-title-tagline', 'static-front-page'); if (!ttfmake_is_plus()) { $builtin_mods[] = 'stylekit'; } foreach ($builtin_mods as $slug) { $file = trailingslashit($default_path) . $slug . '.php'; if (file_exists($file)) { require_once $file; } } // Load section definition files foreach ($panels as $panel => $data) { if (!isset($data['path'])) { $data['path'] = $default_path; } $file = trailingslashit($data['path']) . $panel . '.php'; if (file_exists($file)) { require_once $file; } } // Compile the section definitions $sections = ttfmake_customizer_get_sections(); // Register each section and add its options $priority = array(); foreach ($sections as $section => $data) { // Get the non-prefixed ID of the current section's panel $panel = isset($data['panel']) ? str_replace($theme_prefix, '', $data['panel']) : 'none'; // Store the options if (isset($data['options'])) { $options = $data['options']; unset($data['options']); } // Determine the priority if (!isset($data['priority'])) { $panel_priority = 'none' !== $panel && isset($panels[$panel]['priority']) ? $panels[$panel]['priority'] : 1000; // Create a separate priority counter for each panel, and one for sections without a panel if (!isset($priority[$panel])) { $priority[$panel] = new TTFMAKE_Prioritizer($panel_priority, 10); } $data['priority'] = $priority[$panel]->add(); } // Register section $wp_customize->add_section($theme_prefix . $section, $data); // Back compatibility if (isset($data['path'])) { $file = trailingslashit($data['path']) . $section . '.php'; if (file_exists($file)) { // First load the file require_once $file; // Then add the section $section_callback = 'ttfmake_customizer_'; $section_callback .= strpos($section, '-') ? str_replace('-', '_', $section) : $section; if (function_exists($section_callback)) { // Callback to populate the section call_user_func_array($section_callback, array($wp_customize, $theme_prefix . $section)); } } } // Add options to the section if (isset($options)) { ttfmake_customizer_add_section_options($theme_prefix . $section, $options); unset($options); } } }