WordPress.org

Make WordPress Core


Ignore:
Timestamp:
10/27/2016 10:08:33 PM (4 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/inc/template-tags.php

    r38885 r38986  
    126126endif;
    127127
     128/**
     129 * Display a front page section.
     130 *
     131 * @param $partial WP_Customize_Partial Partial associated with a selective refresh request.
     132 * @param $id integer Front page section to display.
     133 */
     134function twentyseventeen_front_page_section( $partial = null, $id = 0 ) {
     135    if ( is_a( $partial, 'WP_Customize_Partial' ) ) {
     136        // Find out the id and set it up during a selective refresh.
     137        global $twentyseventeencounter;
     138        $id = str_replace( 'panel_', '', $partial->id );
     139        $twentyseventeencounter = $id;
     140    }
     141
     142    global $post; // Modify the global post object before setting up post data.
     143    if ( get_theme_mod( 'panel_' . $id ) ) {
     144        global $post;
     145        $post = get_post( get_theme_mod( 'panel_' . $id ) );
     146        setup_postdata( $post );
     147        set_query_var( 'panel', $id );
     148
     149        get_template_part( 'template-parts/page/content', 'front-page-panels' );
     150
     151        wp_reset_postdata();
     152    } else {
     153        // The output placeholder anchor.
     154        echo '<article class="panel-placeholder panel twentyseventeen-panel twentyseventeen-panel' . $id . '" id="panel' . $id . '"><span class="twentyseventeen-panel-title">' . sprintf( __( 'Panel %1$s Placeholder', 'twentyseventeen' ), $id ) . '</span></article>';
     155    }
     156}
    128157
    129158/**
Note: See TracChangeset for help on using the changeset viewer.