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.