TFz FTFJIw8FXTFZF1zFTFvȕw@TFSx(zF xn~gyp`8@YƳų1@{Ƴ@ų|Ƴhw@G2؝VF 0`|@轪8N:,<Ϩ@wn~gyp`8@zƳų1@{ƳU@ų|Ƴ0 UF<Ƴ"ƳPTFLR ) {xUF ZƳZƳ)ƳjƳETpdz 4U2|@T@Q*O4'X@ZƳ@[ƳeƳAM|H@dzP1p@Q*O4'X@ y'L !Ovn |'.vny'jv[ vn[Ƴų@~Ƴ ųƳ2|@T@Q*O4'X@2@|3@}Ƴų@~Ƴ ųƳ2|@T@Q*O4'X@2@|3@\ƳaƳq|h`@2@cAI1H4@2@zʒR@@2@|3@`\Ƴ\ƳƳU@@@ lBH ȳX*ƳPUBH kBHƳųƳ`ƳAM|H@2@LS`y'2@]{1S`i@ ]Ƴ]ƳxBHINr}FxBHvȕw@XyBHZF1zF]ƳaƳAM|H@ 4U2|@T@Q*O4'X@@^Ƴų@ƳpųƳ1ųƳ'L !Ohvnw'.@vn@z'jv[ vndƳų = set_url_scheme( $url, $scheme ); // Add 'www.' if it is absent and should be there. if ( str_contains( home_url(), '://www.' ) && ! str_contains( $url, '://www.' ) ) { $url = str_replace( '://', '://www.', $url ); } // Strip 'www.' if it is present and shouldn't be. if ( ! str_contains( home_url(), '://www.' ) ) { $url = str_replace( '://www.', '://', $url ); } if ( trim( $url, '/' ) === home_url() && 'page' === get_option( 'show_on_front' ) ) { $page_on_front = get_option( 'page_on_front' ); if ( $page_on_front && get_post( $page_on_front ) instanceof WP_Post ) { return (int) $page_on_front; } } // Check to see if we are using rewrite rules. $rewrite = $wp_rewrite->wp_rewrite_rules(); // Not using rewrite rules, and 'p=N' and 'page_id=N' methods failed, so we're out of options. if ( empty( $rewrite ) ) { return 0; } // Strip 'index.php/' if we're not using path info permalinks. if ( ! $wp_rewrite->using_index_permalinks() ) { $url = str_replace( $wp_rewrite->index . '/', '', $url ); } if ( str_contains( trailingslashit( $url ), home_url( '/' ) ) ) { // Chop off http://domain.com/[path]. $url = str_replace( home_url(), '', $url ); } else { // Chop off /path/to/blog. $home_path = wp_parse_url( home_url( '/' ) ); $home_path = isset( $home_path['path'] ) ? $home_path['path'] : ''; $url = preg_replace( sprintf( '#^%s#', preg_quote( $home_path, '#' ) ), '', trailingslashit( $url ) ); } // Trim leading and lagging slashes. $url = trim( $url, '/' ); $request = $url; $post_type_query_vars = []; foreach ( get_post_types( [], 'objects' ) as $post_type => $t ) { if ( ! empty( $t->query_var ) ) { $post_type_query_vars[ $t->query_var ] = $post_type; } } // Look for matches. $request_match = $request; foreach ( (array) $rewrite as $match => $query ) { /* * If the requesting file is the anchor of the match, * prepend it to the path info. */ if ( ! empty( $url ) && ( $url !== $request ) && str_starts_with( $match, $url ) ) { $request_match = $url . '/' . $request; } if ( preg_match( "#^$match#", $request_match, $matches ) ) { if ( $wp_rewrite->use_verbose_page_rules && preg_match( '/pagename=\$matches\[([0-9]+)\]/', $query, $varmatch ) ) { // This is a verbose page match, let's check to be sure about it. $page = get_page_by_path( $matches[ $varmatch[1] ] ); if ( ! $page ) { continue; } $post_status_obj = get_post_status_object( $page->post_status ); if ( ! $post_status_obj->public && ! $post_status_obj->protected && ! $post_status_obj->private && $post_status_obj->exclude_from_search ) { continue; } } /* * Got a match. * Trim the query of everything up to the '?'. */ $query = preg_replace( '!^.+\?!', '', $query ); // Substitute the substring matches into the query. $query = addslashes( WP_MatchesMapRegex::apply( $query, $matches ) ); // Filter out non-public query vars. global $wp; parse_str( $query, $query_vars ); $query = []; foreach ( (array) $query_vars as $key => $value ) { if ( in_array( (string) $key, $wp->public_query_vars, true ) ) { $query[ $key ] = $value; if ( isset( $post_type_query_vars[ $key ] ) ) { $query['post_type'] = $post_type_query_vars[ $key ]; $query['name'] = $value; } } } // Resolve conflicts between posts with numeric slugs and date archive queries. $query = wp_resolve_numeric_slug_conflicts( $query ); $query['post_status'] = [ 'publish', 'private' ]; /** * Filters WP_Query class passed args. * * @param array $query WP_Query passed args. * @param string $url The URL to derive the post ID from. */ $query = (array) apply_filters( 'rocket_url_to_postid_query_args', $query, $url ); // Do the query. $query = new WP_Query( $query ); if ( ! empty( $query->posts ) && $query->is_singular ) { return $query->post->ID; } else { return 0; } } } return 0; } }