PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 8.6.1
Jetpack – WP Security, Backup, Speed, & Growth v8.6.1
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-constants.php
jetpack / modules / sitemaps Last commit date
sitemap-buffer-fallback.php 6 years ago sitemap-buffer-image-fallback.php 7 years ago sitemap-buffer-image.php 8 years ago sitemap-buffer-master-fallback.php 7 years ago sitemap-buffer-master.php 8 years ago sitemap-buffer-news-fallback.php 7 years ago sitemap-buffer-news.php 8 years ago sitemap-buffer-page-fallback.php 7 years ago sitemap-buffer-page.php 8 years ago sitemap-buffer-video-fallback.php 7 years ago sitemap-buffer-video.php 8 years ago sitemap-buffer.php 7 years ago sitemap-builder.php 6 years ago sitemap-constants.php 6 years ago sitemap-finder.php 7 years ago sitemap-librarian.php 6 years ago sitemap-logger.php 7 years ago sitemap-state.php 7 years ago sitemap-stylist.php 6 years ago sitemaps.php 6 years ago
sitemap-constants.php
233 lines
1 <?php
2 /**
3 * Sitemap-related constants.
4 *
5 * @package Jetpack
6 * @since 4.8.0
7 * @author Automattic
8 */
9
10 /**
11 * Number of seconds between sitemap and news sitemap updates in development code.
12 * In production, sitemaps are cached for 12 hours.
13 * In development, sitemaps are cache for 1 minute.
14 *
15 * @since 7.7.0
16 */
17 if ( defined( 'JETPACK_DEV_DEBUG' ) && JETPACK_DEV_DEBUG ) {
18 if ( ! defined( 'JP_SITEMAP_INTERVAL') ) {
19 define( 'JP_SITEMAP_INTERVAL', 60 );
20 }
21 if ( ! defined( 'JP_NEWS_SITEMAP_INTERVAL') ) {
22 define( 'JP_NEWS_SITEMAP_INTERVAL', 60 );
23 }
24 }
25
26 /**
27 * Maximum size (in bytes) of a sitemap xml file.
28 * Max is 716800 = 700kb to avoid potential failures for default memcached limits (1MB)
29 *
30 * @link https://www.sitemaps.org/
31 * @since 4.8.0
32 */
33 if ( ! defined( 'JP_SITEMAP_MAX_BYTES' ) ) {
34 define( 'JP_SITEMAP_MAX_BYTES', 716800 );
35 }
36
37 /**
38 * Maximum size (in url nodes) of a sitemap xml file.
39 * Per the spec, max value is 50000.
40 *
41 * @link https://www.sitemaps.org/
42 * @since 4.8.0
43 */
44 if ( ! defined( 'JP_SITEMAP_MAX_ITEMS' ) ) {
45 define( 'JP_SITEMAP_MAX_ITEMS', 2000 );
46 }
47
48 /**
49 * Maximum size (in url nodes) of a news sitemap xml file.
50 * Per the spec, max value is 1000.
51 *
52 * @link https://support.google.com/news/publisher/answer/74288?hl=en
53 * @since 4.8.0
54 */
55 if ( ! defined( 'JP_NEWS_SITEMAP_MAX_ITEMS' ) ) {
56 define( 'JP_NEWS_SITEMAP_MAX_ITEMS', 1000 );
57 }
58
59 /**
60 * Batch size for database queries.
61 *
62 * @since 4.8.0
63 */
64 if ( ! defined( 'JP_SITEMAP_BATCH_SIZE' ) ) {
65 define( 'JP_SITEMAP_BATCH_SIZE', 50 );
66 }
67
68 /**
69 * Number of sitemap files to update on each run.
70 *
71 * @since 4.8.0
72 */
73 if ( ! defined( 'JP_SITEMAP_UPDATE_SIZE' ) ) {
74 define( 'JP_SITEMAP_UPDATE_SIZE', 100 );
75 }
76
77 /**
78 * Number of seconds between sitemap updates.
79 *
80 * @since 4.8.0
81 */
82 if ( ! defined( 'JP_SITEMAP_INTERVAL' ) ) {
83 define( 'JP_SITEMAP_INTERVAL', 12 * HOUR_IN_SECONDS );
84 }
85
86 /**
87 * Number of seconds to lock the sitemap state.
88 *
89 * @since 4.8.0
90 */
91 if ( ! defined( 'JP_SITEMAP_LOCK_INTERVAL' ) ) {
92 define( 'JP_SITEMAP_LOCK_INTERVAL', 15 * MINUTE_IN_SECONDS );
93 }
94
95 /**
96 * Number of seconds between news sitemap updates.
97 *
98 * @since 4.8.0
99 */
100 if ( ! defined( 'JP_NEWS_SITEMAP_INTERVAL' ) ) {
101 define( 'JP_NEWS_SITEMAP_INTERVAL', 12 * HOUR_IN_SECONDS );
102 }
103
104 /*
105 * These constants represent the types of various kinds of sitemaps.
106 * Note: these strings are used as 'post_types' in the database, and
107 * so must be at most 20 characters long.
108 */
109
110 if ( ! defined( 'JP_MASTER_SITEMAP_TYPE' ) ) {
111 define( 'JP_MASTER_SITEMAP_TYPE', 'jp_sitemap_master' );
112 }
113
114 if ( ! defined( 'JP_PAGE_SITEMAP_TYPE' ) ) {
115 define( 'JP_PAGE_SITEMAP_TYPE', 'jp_sitemap' );
116 }
117
118 if ( ! defined( 'JP_PAGE_SITEMAP_INDEX_TYPE' ) ) {
119 define( 'JP_PAGE_SITEMAP_INDEX_TYPE', 'jp_sitemap_index' );
120 }
121
122 if ( ! defined( 'JP_IMAGE_SITEMAP_TYPE' ) ) {
123 define( 'JP_IMAGE_SITEMAP_TYPE', 'jp_img_sitemap' );
124 }
125
126 if ( ! defined( 'JP_IMAGE_SITEMAP_INDEX_TYPE' ) ) {
127 define( 'JP_IMAGE_SITEMAP_INDEX_TYPE', 'jp_img_sitemap_index' );
128 }
129
130 if ( ! defined( 'JP_VIDEO_SITEMAP_TYPE' ) ) {
131 define( 'JP_VIDEO_SITEMAP_TYPE', 'jp_vid_sitemap' );
132 }
133
134 if ( ! defined( 'JP_VIDEO_SITEMAP_INDEX_TYPE' ) ) {
135 define( 'JP_VIDEO_SITEMAP_INDEX_TYPE', 'jp_vid_sitemap_index' );
136 }
137
138 /**
139 * The name (with extension) of a sitemap file of the given
140 * type and number.
141 *
142 * @since 4.8.0
143 *
144 * @param string $type The sitemap type.
145 * @param string $number The sitemap number.
146 *
147 * @return string The filename.
148 */
149 function jp_sitemap_filename( $type, $number = null ) {
150 if ( is_null( $number ) ) {
151 return "error-not-int-$type-$number.xml";
152 } elseif ( JP_MASTER_SITEMAP_TYPE === $type ) {
153 return 'sitemap.xml';
154 } elseif ( JP_PAGE_SITEMAP_TYPE === $type ) {
155 return "sitemap-$number.xml";
156 } elseif ( JP_PAGE_SITEMAP_INDEX_TYPE === $type ) {
157 return "sitemap-index-$number.xml";
158 } elseif ( JP_IMAGE_SITEMAP_TYPE === $type ) {
159 return "image-sitemap-$number.xml";
160 } elseif ( JP_IMAGE_SITEMAP_INDEX_TYPE === $type ) {
161 return "image-sitemap-index-$number.xml";
162 } elseif ( JP_VIDEO_SITEMAP_TYPE === $type ) {
163 return "video-sitemap-$number.xml";
164 } elseif ( JP_VIDEO_SITEMAP_INDEX_TYPE === $type ) {
165 return "video-sitemap-index-$number.xml";
166 } else {
167 return "error-bad-type-$type-$number.xml";
168 }
169 }
170
171 /**
172 * The index type corresponding to a sitemap type.
173 *
174 * @since 4.8.0
175 *
176 * @param string $type The sitemap type.
177 *
178 * @return string The index type.
179 */
180 function jp_sitemap_index_type_of( $type ) {
181 if ( JP_PAGE_SITEMAP_TYPE === $type ) {
182 return JP_PAGE_SITEMAP_INDEX_TYPE;
183 } elseif ( JP_IMAGE_SITEMAP_TYPE === $type ) {
184 return JP_IMAGE_SITEMAP_INDEX_TYPE;
185 } elseif ( JP_VIDEO_SITEMAP_TYPE === $type ) {
186 return JP_VIDEO_SITEMAP_INDEX_TYPE;
187 } else {
188 return "error-bad-type-$type";
189 }
190 }
191
192 /**
193 * The sitemap type corresponding to an index type.
194 *
195 * @since 4.8.0
196 *
197 * @param string $type The index type.
198 *
199 * @return string The sitemap type.
200 */
201 function jp_sitemap_child_type_of( $type ) {
202 if ( JP_PAGE_SITEMAP_INDEX_TYPE === $type ) {
203 return JP_PAGE_SITEMAP_TYPE;
204 } elseif ( JP_IMAGE_SITEMAP_INDEX_TYPE === $type ) {
205 return JP_IMAGE_SITEMAP_TYPE;
206 } elseif ( JP_VIDEO_SITEMAP_INDEX_TYPE === $type ) {
207 return JP_VIDEO_SITEMAP_TYPE;
208 } else {
209 return "error-bad-type-$type";
210 }
211 }
212
213 /**
214 * Convert '0000-00-00 00:00:00' to '0000-00-00T00:00:00Z'.
215 * Note that the input is assumed to be in UTC (a.k.a. GMT).
216 *
217 * @link https://www.w3.org/TR/NOTE-datetime
218 * @since 4.8.0
219 *
220 * @param string $datetime The timestamp to convert.
221 *
222 * @return string The converted timestamp.
223 */
224 function jp_sitemap_datetime( $datetime ) {
225 $regex = '/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/';
226
227 if ( preg_match( $regex, $datetime ) ) {
228 return str_replace( ' ', 'T', $datetime ) . 'Z';
229 } else {
230 return $datetime;
231 }
232 }
233