Make WordPress Core


Ignore:
Timestamp:
01/05/2017 07:12:23 AM (10 years ago)
Author:
westonruter
Message:

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

Props dlh.
See #35395.
Fixes #39259.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/theme.php

    r39676 r39688  
    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.