PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.1-a.3
Jetpack – WP Security, Backup, Speed, & Growth v16.1-a.3
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 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 All 500 releases
jetpack / modules / sitemaps / sitemap-buffer-video-xmlwriter.php
sitemap-buffer-video-xmlwriter.php
79 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * XMLWriter implementation of the video 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 video xml files using XMLWriter.
15 *
16 * @since 14.6
17 */
18 class Jetpack_Sitemap_Buffer_Video_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_Video_XMLWriter' );
27
28 // Add stylesheet
29 $this->writer->writePi(
30 'xml-stylesheet',
31 'type="text/xsl" href="' . $this->finder->construct_sitemap_url( 'video-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 XML namespaces included in video sitemaps.
43 *
44 * @module sitemaps
45 *
46 * @since 4.8.0
47 *
48 * @param array $namespaces Associative array with namespaces and namespace URIs.
49 */
50 $namespaces = apply_filters(
51 'jetpack_sitemap_video_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 'xmlns:video' => 'http://www.google.com/schemas/sitemap-video/1.1',
57 )
58 );
59
60 foreach ( $namespaces as $name => $value ) {
61 $this->writer->writeAttribute( $name, $value );
62 }
63 }
64
65 /**
66 * Append a URL entry with video information to the sitemap.
67 *
68 * @param array $array The URL item to append.
69 */
70 protected function append_item( $array ) {
71 // Return early if missing fundamental data.
72 if ( empty( $array['url']['video:video'] ) ) {
73 return;
74 }
75
76 $this->array_to_xml( $array );
77 }
78 }
79