Make WordPress Core


Ignore:
Timestamp:
01/05/2017 08:14:56 AM (8 years ago)
Author:
dd32
Message:

Customize: Ensure theme_mod-cache of custom_css lookup of -1 short-circuits a WP_Query from being made.

Props dlh, westonruter.
See #35395.
Merges [39688] to the 4.7 branch.
Fixes #39259.

Location:
branches/4.7
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.7

  • branches/4.7/src/wp-includes/theme.php

    r39693 r39694  
    16541654        if ( $post_id > 0 && get_post( $post_id ) ) {
    16551655            $post = get_post( $post_id );
    1656         } else {
     1656        }
     1657
     1658        // `-1` indicates no post exists; no query necessary.
     1659        if ( ! $post && -1 !== $post_id ) {
    16571660            $query = new WP_Query( $custom_css_query_vars );
    16581661            $post = $query->post;
    16591662            /*
    1660              * Cache the lookup. See WP_Customize_Custom_CSS_Setting::update().
     1663             * Cache the lookup. See wp_update_custom_css_post().
    16611664             * @todo This should get cleared if a custom_css post is added/removed.
    16621665             */
    1663             if ( $post ) {
    1664                 set_theme_mod( 'custom_css_post_id', $post->ID );
    1665             } elseif ( -1 !== $post_id ) {
    1666                 set_theme_mod( 'custom_css_post_id', -1 );
    1667             }
     1666            set_theme_mod( 'custom_css_post_id', $post ? $post->ID : -1 );
    16681667        }
    16691668    } else {
     
    17891788        $r = wp_insert_post( wp_slash( $post_data ), true );
    17901789
    1791         // Trigger creation of a revision. This should be removed once #30854 is resolved.
    1792         if ( ! is_wp_error( $r ) && 0 === count( wp_get_post_revisions( $r ) ) ) {
    1793             wp_save_post_revision( $r );
     1790        if ( ! is_wp_error( $r ) ) {
     1791            if ( get_stylesheet() === $args['stylesheet'] ) {
     1792                set_theme_mod( 'custom_css_post_id', $r );
     1793            }
     1794
     1795            // Trigger creation of a revision. This should be removed once #30854 is resolved.
     1796            if ( 0 === count( wp_get_post_revisions( $r ) ) ) {
     1797                wp_save_post_revision( $r );
     1798            }
    17941799        }
    17951800    }
Note: See TracChangeset for help on using the changeset viewer.