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