PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 All 508 releases
← All changes | modules/sitemaps/sitemap-buffer-page-xmlwriter.php +74 -0 16.2-beta → 16.3 View file →
@@ -1,0 +1,74 @@
1 +<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 +/**
3 + * XMLWriter implementation of the page sitemap buffer.
4 + *
5 + * @since 14.6
6 + * @package automattic/jetpack
7 + */
8 +
9 +if ( ! defined( 'ABSPATH' ) ) {
10 + exit( 0 );
11 +}
12 +
13 +/**
14 + * A buffer for constructing sitemap page xml files using XMLWriter.
15 + *
16 + * @since 14.6
17 + */
18 +class Jetpack_Sitemap_Buffer_Page_XMLWriter extends Jetpack_Sitemap_Buffer_XMLWriter {
19 +
20 + /**
21 + * Initialize the buffer with required headers (no root element here).
22 + */
23 + protected function initialize_buffer() {
24 + // Add generator comment
25 + $this->writer->writeComment( "generator='jetpack-" . JETPACK__VERSION . "'" );
26 + $this->writer->writeComment( 'Jetpack_Sitemap_Buffer_Page_XMLWriter' );
27 +
28 + // Add stylesheet
29 + $this->writer->writePi(
30 + 'xml-stylesheet',
31 + 'type="text/xsl" href="' . $this->finder->construct_sitemap_url( 'sitemap.xsl' ) . '"'
32 + );
33 + }
34 +
35 + /**
36 + * Start the root element and write its namespaces.
37 + */
38 + protected function start_root() {
39 + $this->writer->startElement( 'urlset' );
40 +
41 + /**
42 + * Filter the attribute value pairs used for namespace and namespace URI mappings.
43 + *
44 + * @module sitemaps
45 + *
46 + * @since 3.9.0
47 + *
48 + * @param array $namespaces Associative array with namespaces and namespace URIs.
49 + */
50 + $namespaces = apply_filters(
51 + 'jetpack_sitemap_ns',
52 + array(
53 + 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
54 + 'xsi:schemaLocation' => 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd',
55 + 'xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9',
56 + )
57 + );
58 +
59 + foreach ( $namespaces as $name => $value ) {
60 + $this->writer->writeAttribute( $name, $value );
61 + }
62 + }
63 +
64 + /**
65 + * Append a URL entry to the sitemap.
66 + *
67 + * @param array $array The URL item to append.
68 + */
69 + protected function append_item( $array ) {
70 + if ( ! empty( $array['url'] ) ) {
71 + $this->array_to_xml( $array );
72 + }
73 + }
74 +}