From 626b26029b4b5c1d05ef36e3d50287e0fb2156e4 Mon Sep 17 00:00:00 2001 From: AswiniSudhaKattamuri Date: Fri, 9 Jan 2026 10:15:13 +0530 Subject: [PATCH 1/3] Prevent URL remapping for attachments without file extensions --- src/class-wp-import.php | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/class-wp-import.php b/src/class-wp-import.php index 6b179432..aec4c051 100644 --- a/src/class-wp-import.php +++ b/src/class-wp-import.php @@ -1357,15 +1357,21 @@ public function process_attachment( $post, $url ) { wp_update_attachment_metadata( $post_id, wp_generate_attachment_metadata( $post_id, $upload['file'] ) ); // remap resized image URLs, works by stripping the extension and remapping the URL stub. - if ( preg_match( '!^image/!', $info['type'] ) ) { - $parts = pathinfo( $url ); - $name = basename( $parts['basename'], ".{$parts['extension']}" ); // PATHINFO_FILENAME in PHP 5.2 + if ( preg_match( '!^image/!', $info['type'] ) ) { + $parts = pathinfo( $url ); + $parts_new = pathinfo( $upload['url'] ); - $parts_new = pathinfo( $upload['url'] ); - $name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" ); + if ( empty( $parts['extension'] ) || empty( $parts_new['extension'] ) ) { + return $post_id; + } + + $name = basename( $parts['basename'], ".{$parts['extension']}" ); + $name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" ); + + $this->url_remap[ $parts['dirname'] . '/' . $name ] = + $parts_new['dirname'] . '/' . $name_new; +} - $this->url_remap[ $parts['dirname'] . '/' . $name ] = $parts_new['dirname'] . '/' . $name_new; - } return $post_id; } From 039c957cdbb8eb3cf32ff773584ea94a6a350735 Mon Sep 17 00:00:00 2001 From: AswiniSudhaKattamuri Date: Fri, 9 Jan 2026 10:38:10 +0530 Subject: [PATCH 2/3] Fix PHPCS indentation and guard URL remapping for extensionless media --- src/class-wp-import.php | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/class-wp-import.php b/src/class-wp-import.php index aec4c051..44f76612 100644 --- a/src/class-wp-import.php +++ b/src/class-wp-import.php @@ -9,6 +9,7 @@ use WordPress\DataLiberation\URL\WPURL; use function WordPress\DataLiberation\URL\wp_rewrite_urls; + /** * WordPress importer class. */ @@ -1356,21 +1357,22 @@ public function process_attachment( $post, $url ) { $post_id = wp_insert_attachment( $post, $upload['file'] ); wp_update_attachment_metadata( $post_id, wp_generate_attachment_metadata( $post_id, $upload['file'] ) ); - // remap resized image URLs, works by stripping the extension and remapping the URL stub. - if ( preg_match( '!^image/!', $info['type'] ) ) { - $parts = pathinfo( $url ); - $parts_new = pathinfo( $upload['url'] ); + // remap resized image URLs, works by stripping the extension and remapping the URL stub. + if ( preg_match( '!^image/!', $info['type'] ) ) { + $parts = pathinfo( $url ); + $parts_new = pathinfo( $upload['url'] ); - if ( empty( $parts['extension'] ) || empty( $parts_new['extension'] ) ) { - return $post_id; - } + if ( empty( $parts['extension'] ) || empty( $parts_new['extension'] ) ) { + return $post_id; + } - $name = basename( $parts['basename'], ".{$parts['extension']}" ); - $name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" ); + $name = basename( $parts['basename'], ".{$parts['extension']}" ); + $name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" ); + + $this->url_remap[ $parts['dirname'] . '/' . $name ] = + $parts_new['dirname'] . '/' . $name_new; + } - $this->url_remap[ $parts['dirname'] . '/' . $name ] = - $parts_new['dirname'] . '/' . $name_new; -} return $post_id; From cd2b19a883888ef56b20efb611adbf728220fc5b Mon Sep 17 00:00:00 2001 From: AswiniSudhaKattamuri Date: Fri, 9 Jan 2026 11:53:01 +0530 Subject: [PATCH 3/3] Fix PHPCS whitespace issues and guard URL remapping --- src/class-wp-import.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/class-wp-import.php b/src/class-wp-import.php index 44f76612..5ec606e7 100644 --- a/src/class-wp-import.php +++ b/src/class-wp-import.php @@ -9,10 +9,10 @@ use WordPress\DataLiberation\URL\WPURL; use function WordPress\DataLiberation\URL\wp_rewrite_urls; - /** * WordPress importer class. */ + class WP_Import extends WP_Importer { public $max_wxr_version = 1.2; // max. supported WXR version @@ -1357,7 +1357,7 @@ public function process_attachment( $post, $url ) { $post_id = wp_insert_attachment( $post, $upload['file'] ); wp_update_attachment_metadata( $post_id, wp_generate_attachment_metadata( $post_id, $upload['file'] ) ); - // remap resized image URLs, works by stripping the extension and remapping the URL stub. + // remap resized image URLs, works by stripping the extension and remapping the URL stub. if ( preg_match( '!^image/!', $info['type'] ) ) { $parts = pathinfo( $url ); $parts_new = pathinfo( $upload['url'] ); @@ -1368,13 +1368,10 @@ public function process_attachment( $post, $url ) { $name = basename( $parts['basename'], ".{$parts['extension']}" ); $name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" ); - $this->url_remap[ $parts['dirname'] . '/' . $name ] = $parts_new['dirname'] . '/' . $name_new; } - - return $post_id; }