Menus: Trim whitespace from custom link URLs.
Props majemedia, SergeyBiryukov. Fixes #47723. git-svn-id: https://develop.svn.wordpress.org/trunk@45655 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
8416a2b410
commit
fd23000b11
|
@ -456,11 +456,15 @@ function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0, $menu_item
|
|||
|
||||
$original_parent = 0 < $menu_item_db_id ? get_post_field( 'post_parent', $menu_item_db_id ) : 0;
|
||||
|
||||
if ( 'custom' != $args['menu-item-type'] ) {
|
||||
/* if non-custom menu item, then:
|
||||
* use original object's URL
|
||||
* blank default title to sync with original object's
|
||||
*/
|
||||
if ( 'custom' === $args['menu-item-type'] ) {
|
||||
// If custom menu item, trim the URL.
|
||||
$args[ 'menu-item-url' ] = trim( $args[ 'menu-item-url' ] );
|
||||
} else {
|
||||
/*
|
||||
* If non-custom menu item, then:
|
||||
* - use the original object's URL.
|
||||
* - blank default title to sync with the original object's title.
|
||||
*/
|
||||
|
||||
$args['menu-item-url'] = '';
|
||||
|
||||
|
|
|
@ -149,7 +149,7 @@ class Test_Nav_Menus extends WP_UnitTestCase {
|
|||
array(
|
||||
'menu-item-type' => 'custom',
|
||||
'menu-item-title' => 'Wordpress.org',
|
||||
'menu-item-link' => 'http://wordpress.org',
|
||||
'menu-item-url' => 'http://wordpress.org',
|
||||
'menu-item-status' => 'publish',
|
||||
)
|
||||
);
|
||||
|
@ -926,4 +926,34 @@ class Test_Nav_Menus extends WP_UnitTestCase {
|
|||
$this->assertContains( 'menu-item-privacy-policy', $classes );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 47723
|
||||
* @dataProvider data_trim_url_for_custom_item
|
||||
*/
|
||||
function test_trim_url_for_custom_item( $custom_url, $correct_url ) {
|
||||
$custom_item_id = wp_update_nav_menu_item(
|
||||
$this->menu_id,
|
||||
0,
|
||||
array(
|
||||
'menu-item-type' => 'custom',
|
||||
'menu-item-title' => 'WordPress.org',
|
||||
'menu-item-url' => $custom_url,
|
||||
'menu-item-status' => 'publish',
|
||||
)
|
||||
);
|
||||
|
||||
$custom_item = wp_setup_nav_menu_item( get_post( $custom_item_id ) );
|
||||
$this->assertEquals( $correct_url, $custom_item->url );
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides data for test_trim_url_for_custom_item().
|
||||
*/
|
||||
function data_trim_url_for_custom_item() {
|
||||
return array(
|
||||
array( 'https://wordpress.org ', 'https://wordpress.org' ),
|
||||
array( ' https://wordpress.org', 'https://wordpress.org' ),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue