Use a less complex approach for enforcing path slashes in update_blog_details()

Ensure leading and traling slashes are in place and don't touch anything in the middle. Validating with `array_filter()` would have missed a possible valid falsy path - `/my-path/0/`.

Props nacin.

Fixes #18117.


git-svn-id: https://develop.svn.wordpress.org/trunk@31158 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Jeremy Felt
2015-01-12 04:20:47 +00:00
parent d759c0ef23
commit 0eb9f7e414
2 changed files with 6 additions and 3 deletions

View File

@@ -298,8 +298,7 @@ function update_blog_details( $blog_id, $details = array() ) {
$fields = array( 'site_id', 'domain', 'path', 'registered', 'last_updated', 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id');
foreach ( array_intersect( array_keys( $details ), $fields ) as $field ) {
if ( 'path' === $field ) {
$details[ $field ] = array_filter( explode( '/', $details[ $field ] ) );
$details[ $field ] = trailingslashit( '/' . implode( '/', $details[ $field ] ) );
$details[ $field ] = trailingslashit( '/' . trim( $details[ $field ], '/' ) );
}
$update_details[ $field ] = $details[ $field ];