Customize: Provide validation feedback for invalid Custom Link URLs in nav menu items.

Props RMarks, EGregor, umangvaghela123, andrew.taylor, celloexpressions, westonruter, voldemortensen.
Fixes #32816.

Built from https://develop.svn.wordpress.org/trunk@41697


git-svn-id: http://core.svn.wordpress.org/trunk@41531 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Weston Ruter
2017-10-03 03:43:47 +00:00
parent 51ee4233f1
commit 2d69c9ef4f
8 changed files with 38 additions and 12 deletions

View File

@@ -641,8 +641,8 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {
* @since 4.3.0
*
* @param array $menu_item_value The value to sanitize.
* @return array|false|null Null if an input isn't valid. False if it is marked for deletion.
* Otherwise the sanitized value.
* @return array|false|null|WP_Error Null or WP_Error if an input isn't valid. False if it is marked for deletion.
* Otherwise the sanitized value.
*/
public function sanitize( $menu_item_value ) {
// Menu is marked for deletion.
@@ -701,7 +701,12 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {
$menu_item_value['attr_title'] = wp_unslash( apply_filters( 'excerpt_save_pre', wp_slash( $menu_item_value['attr_title'] ) ) );
$menu_item_value['description'] = wp_unslash( apply_filters( 'content_save_pre', wp_slash( $menu_item_value['description'] ) ) );
$menu_item_value['url'] = esc_url_raw( $menu_item_value['url'] );
if ( '' !== $menu_item_value['url'] ) {
$menu_item_value['url'] = esc_url_raw( $menu_item_value['url'] );
if ( '' === $menu_item_value['url'] ) {
return new WP_Error( 'invalid_url', __( 'Invalid URL.' ) ); // Fail sanitization if URL is invalid.
}
}
if ( 'publish' !== $menu_item_value['status'] ) {
$menu_item_value['status'] = 'draft';
}

View File

@@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
$wp_version = '4.9-alpha-41696';
$wp_version = '4.9-alpha-41697';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.