PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.0-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.0-beta
16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / modules / sitemaps / sitemap-finder.php
jetpack / modules / sitemaps Last commit date
abilities 1 month ago sitemap-buffer-factory.php 7 months ago sitemap-buffer-fallback.php 7 months ago sitemap-buffer-image-fallback.php 7 months ago sitemap-buffer-image-xmlwriter.php 7 months ago sitemap-buffer-image.php 7 months ago sitemap-buffer-master-fallback.php 7 months ago sitemap-buffer-master-xmlwriter.php 7 months ago sitemap-buffer-master.php 7 months ago sitemap-buffer-news-fallback.php 7 months ago sitemap-buffer-news-xmlwriter.php 7 months ago sitemap-buffer-news.php 7 months ago sitemap-buffer-page-fallback.php 7 months ago sitemap-buffer-page-xmlwriter.php 7 months ago sitemap-buffer-page.php 7 months ago sitemap-buffer-video-fallback.php 7 months ago sitemap-buffer-video-xmlwriter.php 7 months ago sitemap-buffer-video.php 7 months ago sitemap-buffer-xmlwriter.php 7 months ago sitemap-buffer.php 7 months ago sitemap-builder.php 1 month ago sitemap-constants.php 7 months ago sitemap-finder.php 7 months ago sitemap-librarian.php 7 months ago sitemap-logger.php 7 months ago sitemap-state.php 7 months ago sitemap-stylist.php 7 months ago sitemaps.php 1 month ago
sitemap-finder.php
120 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * The functions in this class provide an API for handling
4 * sitemap related URIs.
5 *
6 * @package automattic/jetpack
7 * @since 4.8.0
8 * @author Automattic
9 */
10
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit( 0 );
13 }
14
15 /**
16 * The Jetpack_Sitemap_Finder object deals with constructing
17 * sitemap URIs.
18 *
19 * @since 4.8.0
20 */
21 class Jetpack_Sitemap_Finder {
22
23 /**
24 * Construct the complete URL of a sitemap file. Depends on
25 * permalink settings.
26 *
27 * @access public
28 * @since 4.8.0
29 * @since 4.8.1 Call jetpack_sitemap_uri()
30 *
31 * @param string $filename The filename of the sitemap.
32 *
33 * @return string Complete URI of the given sitemap file.
34 */
35 public function construct_sitemap_url( $filename ) {
36 $url = jetpack_sitemap_uri( $filename );
37
38 if ( pathinfo( $filename, PATHINFO_EXTENSION ) === 'xsl' ) {
39 // Strip scheme for sites where sitemap could be access via http or https.
40 $url = preg_replace( '/^https?:/', '', $url );
41 }
42
43 return $url;
44 }
45
46 /**
47 * Path and query prefix of sitemap files. Depends on permalink
48 * settings.
49 *
50 * @access public
51 * @since 4.8.0
52 *
53 * @return string The path+query prefix.
54 */
55 public function the_jetpack_sitemap_path_and_query_prefix() {
56 global $wp_rewrite;
57
58 // Get path fragment from home_url().
59 $home = wp_parse_url( home_url() );
60 if ( isset( $home['path'] ) ) {
61 $home_path = $home['path'];
62 } else {
63 $home_path = '';
64 }
65
66 // Get additional path fragment from filter.
67 $location = Jetpack_Options::get_option_and_ensure_autoload(
68 'jetpack_sitemap_location',
69 ''
70 );
71
72 if ( $wp_rewrite->using_index_permalinks() ) {
73 return $home_path . '/index.php' . $location . '/';
74 } elseif ( $wp_rewrite->using_permalinks() ) {
75 return $home_path . $location . '/';
76 } else {
77 return $home_path . $location . '/?jetpack-sitemap=';
78 }
79 }
80
81 /**
82 * Examine a path+query URI fragment looking for a sitemap request.
83 *
84 * @access public
85 * @since 4.8.0
86 *
87 * @param string $raw_uri A URI (path+query only) to test for sitemap-ness.
88 *
89 * @return array @args {
90 * @type string $sitemap_name The recognized sitemap name (or null).
91 * }
92 */
93 public function recognize_sitemap_uri( $raw_uri ) {
94 // The path+query where sitemaps are served.
95 $sitemap_path = $this->the_jetpack_sitemap_path_and_query_prefix();
96
97 // A regex which detects $sitemap_path at the beginning of a string.
98 $path_regex = '/^' . preg_quote( $sitemap_path, '/' ) . '/';
99
100 // Check that the request URI begins with the sitemap path.
101 if ( preg_match( $path_regex, $raw_uri ) ) {
102 // Strip off the $sitemap_path and any trailing slash.
103 $stripped_uri = preg_replace( $path_regex, '', rtrim( $raw_uri, '/' ) );
104 } else {
105 $stripped_uri = '';
106 }
107
108 // Check that the stripped uri begins with one of the sitemap prefixes.
109 if ( preg_match( '/^sitemap|^image-s|^news-s|^video-s/', $stripped_uri ) ) {
110 $filename = $stripped_uri;
111 } else {
112 $filename = null;
113 }
114
115 return array(
116 'sitemap_name' => $filename,
117 );
118 }
119 }
120