diff -r be944660c56a -r 3d72ae0968f4 wp/wp-includes/canonical.php --- a/wp/wp-includes/canonical.php Wed Sep 21 18:19:35 2022 +0200 +++ b/wp/wp-includes/canonical.php Tue Sep 27 16:37:53 2022 +0200 @@ -847,11 +847,17 @@ * @return string The altered URL. */ function strip_fragment_from_url( $url ) { - $parsed_url = parse_url( $url ); + $parsed_url = wp_parse_url( $url ); if ( ! empty( $parsed_url['host'] ) ) { - // This mirrors code in redirect_canonical(). It does not handle every case. - $url = $parsed_url['scheme'] . '://' . $parsed_url['host']; + $url = ''; + + if ( ! empty( $parsed_url['scheme'] ) ) { + $url = $parsed_url['scheme'] . ':'; + } + + $url .= '//' . $parsed_url['host']; + if ( ! empty( $parsed_url['port'] ) ) { $url .= ':' . $parsed_url['port']; } @@ -951,8 +957,9 @@ $where .= $wpdb->prepare( ' AND DAYOFMONTH(post_date) = %d', get_query_var( 'day' ) ); } + $publicly_viewable_statuses = array_filter( get_post_stati(), 'is_post_status_viewable' ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared - $post_id = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE $where AND post_status = 'publish'" ); + $post_id = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE $where AND post_status IN ('" . implode( "', '", esc_sql( $publicly_viewable_statuses ) ) . "')" ); if ( ! $post_id ) { return false;