diff --git a/src/wp-includes/theme.php b/src/wp-includes/theme.php index 76aa9550ae..473b9956cf 100644 --- a/src/wp-includes/theme.php +++ b/src/wp-includes/theme.php @@ -913,8 +913,21 @@ function get_theme_mod( $name, $default = false ) { */ function set_theme_mod( $name, $value ) { $mods = get_theme_mods(); + $old_value = $mods[ $name ]; - $mods[ $name ] = $value; + /** + * Filter the theme mod value on save. + * + * The dynamic portion of the hook name, $name, refers to the key name of + * the modification array. For example, 'header_textcolor', 'header_image', + * and so on depending on the theme options. + * + * @since 3.9.0 + * + * @param string $value The new value of the theme mod. + * @param string $old_value The current value of the theme mod. + */ + $mods[ $name ] = apply_filters( "pre_set_theme_mod_$name", $value, $old_value ); $theme = get_option( 'stylesheet' ); update_option( "theme_mods_$theme", $mods );