WordPress.org

Make WordPress Core


Ignore:
Timestamp:
10/27/2016 10:08:33 PM (5 years ago)
Author:
davidakennedy
Message:

Twenty Seventeen: Improve user and developer experience with the customizer integration

  • Rename customizer JS files to customize-preview.js and customize-controls.js to align with the core file naming and make it clearer where each file runs.
  • Only show the colorscheme_hue control when there's a custom color scheme.
  • Update preview JS handling for revised front page section handling, see below.
  • Remove all references to "Theme Customizer" in code comments. It hasn't been called that since before 4.0.
  • Clarify the purpose of the JS files by updated the code comments in the file headers.
  • Improve code readability.
  • Make the arbitrary number of front page sections filterable, for UI registration and output.
  • Rename twentyseventeen_sanitize_layout to twentyseventeen_sanitize_page_layout to be clearer about what it sanitizes in case child themes or plugins consider reusing it.
  • Rename page_options setting/control to page_layout as that's more reflective of what that option does; and again, helps for potential extensions.
  • Make the page layout option contextual to pages and the sidebar being inactive, as the option only applies when there is no sidebar (per its description).
  • Condense options into a single section.
  • Add selective refresh for front page sections.
  • Locate active_callback functions within customizer.php so that they're easier to find when editing customizer registrations, similarly to sanitize callbacks.
  • Adjust the styling for placeholders for panels that aren't active.
  • Ensure that the new visible edit shortcuts don't have any issues.

Props celloexpressions.

Fixes #38426.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-content/themes/twentyseventeen/front-page.php

    r38875 r38986  
    2929        <?php
    3030        // Get each of our panels and show the post data.
    31         $panels = array( '1', '2', '3', '4' );
    32         $titles = array();
    33 
    34         global $twentyseventeencounter; // Used in template-parts/page/content-front-page-panels.php file.
    35 
    3631        if ( 0 !== twentyseventeen_panel_count() || is_customize_preview() ) : // If we have pages to show.
    3732
    38             $twentyseventeencounter = 1;
     33            /**
     34             * Filter number of front page sections in Twenty Seventeen.
     35             *
     36             * @since Twenty Seventeen 1.0
     37             *
     38             * @param $num_sections integer
     39             */
     40            $num_sections = apply_filters( 'twentyseventeen_front_page_sections', 4 );
     41            global $twentyseventeencounter;
    3942
    40             foreach ( $panels as $panel ) :
    41                 if ( get_theme_mod( 'panel_' . $panel ) ) :
    42                     $post = get_post( get_theme_mod( 'panel_' . $panel ) );
    43                     setup_postdata( $post );
    44                     set_query_var( 'panel', $panel );
     43            // Create a setting and control for each of the sections available in the theme.
     44            for ( $i = 1; $i < ( 1 + $num_sections ); $i++ ) {
     45                $twentyseventeencounter = $i;
     46                twentyseventeen_front_page_section( null, $i );
     47            }
    4548
    46                     $titles[] = get_the_title(); // Put page titles in an array for use in navigation.
    47                     get_template_part( 'template-parts/page/content', 'front-page-panels' );
    48 
    49                     wp_reset_postdata();
    50                 else :
    51                     // The output placeholder anchor.
    52                     echo '<article class="panel-placeholder panel twentyseventeen-panel twentyseventeen-panel' . esc_attr( $twentyseventeencounter ) . '" id="panel' . esc_attr( $twentyseventeencounter ) . '"><span class="twentyseventeen-panel-title">' . sprintf( __( 'Panel %1$s Placeholder', 'twentyseventeen' ), esc_attr( $twentyseventeencounter ) ) . '</span></article>';
    53                 endif;
    54 
    55                 $twentyseventeencounter++;
    56             endforeach;
    57             ?>
    58 
    59     <?php endif; // The if ( 0 !== twentyseventeen_panel_count() ) ends here.
    60     ?>
     49    endif; // The if ( 0 !== twentyseventeen_panel_count() ) ends here. ?>
    6150
    6251    </main><!-- #main -->
Note: See TracChangeset for help on using the changeset viewer.