WordPress.org

Make WordPress Core


Ignore:
Timestamp:
10/19/2016 06:14:21 PM (3 years ago)
Author:
westonruter
Message:

Customize: Introduce custom CSS for extending theme styles.

  • Custom CSS is associated with a given theme and is displayed in an inline style element at the wp_head hook after the wp_print_styles is called so that it overrides any enqueued stylesheets.
  • A wp_get_custom_css() function is used for accessing the CSS associated with the current theme (or another theme) and a wp_get_custom_css filter for manipulating it.
  • CSS is managed in customizer via a new "Additional CSS" section with a single textarea control.
  • WP_Customize_Section::$description_hidden is introduced for hiding extended descriptions in customizer sections behind a help toggle as done with panels.
  • CSS is stored in a custom_css post type with the theme (stylesheet) slug as the post_name.
  • WP_Customize_Custom_CSS_Setting is introduced to handle validation of CSS, previewing, and persisting the CSS to the custom_css post type.
  • The custom_css setting is tied to a new unfiltered_css capability which maps to unfiltered_html by default.
  • Escaping the message in the notification template is removed to allow markup (code tags) to be rendered.

See https://make.wordpress.org/core/2016/10/11/feature-proposal-better-theme-customizations-via-custom-css-with-live-previews/

Props johnregan3, celloexpressions, folletto, westonruter.
Fixes #35395.

File:
1 edited

Legend:

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

    r38810 r38829  
    110110        'delete_with_user' => false,
    111111        'query_var' => false,
     112    ) );
     113
     114    register_post_type( 'custom_css', array(
     115        'labels' => array(
     116            'name'          => __( 'Custom CSS' ),
     117            'singular_name' => __( 'Custom CSS' ),
     118        ),
     119        'public'           => false,
     120        'hierarchical'     => false,
     121        'rewrite'          => false,
     122        'query_var'        => false,
     123        'delete_with_user' => false,
     124        'can_export'       => true,
     125        '_builtin'         => true, /* internal use only. don't use this when registering your own post type. */
     126        'supports'         => array( 'title' ),
     127        'capabilities'     => array(
     128            'delete_posts'           => 'edit_theme_options',
     129            'delete_post'            => 'edit_theme_options',
     130            'delete_published_posts' => 'edit_theme_options',
     131            'delete_private_posts'   => 'edit_theme_options',
     132            'delete_others_posts'    => 'edit_theme_options',
     133            'edit_post'              => 'unfiltered_css',
     134            'edit_posts'             => 'unfiltered_css',
     135            'edit_others_posts'      => 'unfiltered_css',
     136            'edit_published_posts'   => 'unfiltered_css',
     137            'read_post'              => 'read',
     138            'read_private_posts'     => 'read',
     139            'publish_posts'          => 'edit_theme_options',
     140        ),
    112141    ) );
    113142
Note: See TracChangeset for help on using the changeset viewer.