Make WordPress Core

10/28/2016 02:56:16 AM (4 years ago)

Customize: Introduce starter content and site freshness state.

A theme can opt-in for tailored starter content to apply to the customizer when previewing the theme on a fresh install, when fresh_site is at its initial 1 value. Starter content is staged in the customizer and does not go live unless the changes are published. Initial starter content is added to Twenty Seventeen.

  • The fresh_site flag is cleared when a published post or page is saved, when widgets are modified, or when the customizer state is saved.
  • Starter content is registered via starter-content theme support, where the argument is an array containing widgets, posts, nav_menus, options, and theme_mods. Posts/pages in starter content are created with the auto-draft status, re-using the page/post stubs feature added to nav menus and the static front page controls.
  • A get_theme_starter_content filter allows for plugins to extend a theme's starter content.
  • Starter content in themes can/should re-use existing starter content items in core by using named placeholders.
  • Import theme starter content into customized state when fresh site.
  • Prevent original_title differences from causing refreshes if title is present.
  • Ensure nav menu item url is set according to object when previewing.
  • Make sure initial saved state is false if there are dirty settings without an existing changeset.
  • Ensure dirty settings are cleaned upon changeset publishing.

Props helen, westonruter, ocean90.
Fixes #38114, #38533.

1 edited


  • trunk/src/wp-includes/functions.php

    r38956 r38991  
     3244 * Delete the fresh site option.
     3245 *
     3246 * @since 4.7.0
     3247 * @access private
     3248 */
     3249function _delete_option_fresh_site() {
     3250    update_option( 'fresh_site', 0 );
    32443254 * Set the localized direction for MCE plugin.
    32453255 *
Note: See TracChangeset for help on using the changeset viewer.