Submit
Path:
~
/
home
/
bfxleof
/
www
/
wp-includes
/
Text
/
File Content:
class-wp-sitemaps-renderer.php
<?php /** * Sitemaps: WP_Sitemaps_Renderer class * * Responsible for rendering Sitemaps data to XML in accordance with sitemap protocol. * * @package WordPress * @subpackage Sitemaps * @since 5.5.0 */ /** * Class WP_Sitemaps_Renderer * * @since 5.5.0 */ class WP_Sitemaps_Renderer { /** * XSL stylesheet for styling a sitemap for web browsers. * * @since 5.5.0 * * @var string */ protected $stylesheet = ''; /** * XSL stylesheet for styling a sitemap for web browsers. * * @since 5.5.0 * * @var string */ protected $stylesheet_index = ''; /** * WP_Sitemaps_Renderer constructor. * * @since 5.5.0 */ public function __construct() { $stylesheet_url = $this->get_sitemap_stylesheet_url(); if ( $stylesheet_url ) { $this->stylesheet = '<?xml-stylesheet type="text/xsl" href="' . esc_url( $stylesheet_url ) . '" ?>'; } $stylesheet_index_url = $this->get_sitemap_index_stylesheet_url(); if ( $stylesheet_index_url ) { $this->stylesheet_index = '<?xml-stylesheet type="text/xsl" href="' . esc_url( $stylesheet_index_url ) . '" ?>'; } } /** * Gets the URL for the sitemap stylesheet. * * @since 5.5.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @return string The sitemap stylesheet URL. */ public function get_sitemap_stylesheet_url() { global $wp_rewrite; $sitemap_url = home_url( '/wp-sitemap.xsl' ); if ( ! $wp_rewrite->using_permalinks() ) { $sitemap_url = home_url( '/?sitemap-stylesheet=sitemap' ); } /** * Filters the URL for the sitemap stylesheet. * * If a falsey value is returned, no stylesheet will be used and * the "raw" XML of the sitemap will be displayed. * * @since 5.5.0 * * @param string $sitemap_url Full URL for the sitemaps XSL file. */ return apply_filters( 'wp_sitemaps_stylesheet_url', $sitemap_url ); } /** * Gets the URL for the sitemap index stylesheet. * * @since 5.5.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @return string The sitemap index stylesheet URL. */ public function get_sitemap_index_stylesheet_url() { global $wp_rewrite; $sitemap_url = home_url( '/wp-sitemap-index.xsl' ); if ( ! $wp_rewrite->using_permalinks() ) { $sitemap_url = home_url( '/?sitemap-stylesheet=index' ); } /** * Filters the URL for the sitemap index stylesheet. * * If a falsey value is returned, no stylesheet will be used and * the "raw" XML of the sitemap index will be displayed. * * @since 5.5.0 * * @param string $sitemap_url Full URL for the sitemaps index XSL file. */ return apply_filters( 'wp_sitemaps_stylesheet_index_url', $sitemap_url ); } /** * Renders a sitemap index. * * @since 5.5.0 * * @param array $sitemaps Array of sitemap URLs. */ public function render_index( $sitemaps ) { header( 'Content-type: application/xml; charset=UTF-8' ); $this->check_for_simple_xml_availability(); $index_xml = $this->get_sitemap_index_xml( $sitemaps ); if ( ! empty( $index_xml ) ) { // All output is escaped within get_sitemap_index_xml(). // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo $index_xml; } } /** * Gets XML for a sitemap index. * * @since 5.5.0 * * @param array $sitemaps Array of sitemap URLs. * @return string|false A well-formed XML string for a sitemap index. False on error. */ public function get_sitemap_index_xml( $sitemaps ) { $sitemap_index = new SimpleXMLElement( sprintf( '%1$s%2$s%3$s', '<?xml version="1.0" encoding="UTF-8" ?>', $this->stylesheet_index, '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" />' ) ); foreach ( $sitemaps as $entry ) { $sitemap = $sitemap_index->addChild( 'sitemap' ); // Add each element as a child node to the <sitemap> entry. foreach ( $entry as $name => $value ) { if ( 'loc' === $name ) { $sitemap->addChild( $name, esc_url( $value ) ); } elseif ( 'lastmod' === $name ) { $sitemap->addChild( $name, esc_xml( $value ) ); } else { _doing_it_wrong( __METHOD__, sprintf( /* translators: %s: List of element names. */ __( 'Fields other than %s are not currently supported for the sitemap index.' ), implode( ',', array( 'loc', 'lastmod' ) ) ), '5.5.0' ); } } } return $sitemap_index->asXML(); } /** * Renders a sitemap. * * @since 5.5.0 * * @param array $url_list Array of URLs for a sitemap. */ public function render_sitemap( $url_list ) { header( 'Content-type: application/xml; charset=UTF-8' ); $this->check_for_simple_xml_availability(); $sitemap_xml = $this->get_sitemap_xml( $url_list ); if ( ! empty( $sitemap_xml ) ) { // All output is escaped within get_sitemap_xml(). // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo $sitemap_xml; } } /** * Gets XML for a sitemap. * * @since 5.5.0 * * @param array $url_list Array of URLs for a sitemap. * @return string|false A well-formed XML string for a sitemap index. False on error. */ public function get_sitemap_xml( $url_list ) { $urlset = new SimpleXMLElement( sprintf( '%1$s%2$s%3$s', '<?xml version="1.0" encoding="UTF-8" ?>', $this->stylesheet, '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" />' ) ); foreach ( $url_list as $url_item ) { $url = $urlset->addChild( 'url' ); // Add each element as a child node to the <url> entry. foreach ( $url_item as $name => $value ) { if ( 'loc' === $name ) { $url->addChild( $name, esc_url( $value ) ); } elseif ( in_array( $name, array( 'lastmod', 'changefreq', 'priority' ), true ) ) { $url->addChild( $name, esc_xml( $value ) ); } else { _doing_it_wrong( __METHOD__, sprintf( /* translators: %s: List of element names. */ __( 'Fields other than %s are not currently supported for sitemaps.' ), implode( ',', array( 'loc', 'lastmod', 'changefreq', 'priority' ) ) ), '5.5.0' ); } } } return $urlset->asXML(); } /** * Checks for the availability of the SimpleXML extension and errors if missing. * * @since 5.5.0 */ private function check_for_simple_xml_availability() { if ( ! class_exists( 'SimpleXMLElement' ) ) { add_filter( 'wp_die_handler', static function () { return '_xml_wp_die_handler'; } ); wp_die( sprintf( /* translators: %s: SimpleXML */ esc_xml( __( 'Could not generate XML sitemap due to missing %s extension' ) ), 'SimpleXML' ), esc_xml( __( 'WordPress › Error' ) ), array( 'response' => 501, // "Not implemented". ) ); } } }
Submit
FILE
FOLDER
Name
Size
Permission
Action
418.php
478 bytes
0644
Category.php
3944 bytes
0644
ChaCha20.php
12934 bytes
0644
Ed25519.php
15618 bytes
0644
Exception-20260705162222.php
1214 bytes
0644
Exception.php
1214 bytes
0644
Hooks.php
1510 bytes
0644
admin-bar-rtl.min.css
19600 bytes
0644
admin-bar.css
23876 bytes
0644
autoload.php
2731 bytes
0644
block-serialization-default-parser.js
19531 bytes
0644
calendar.php
1569 bytes
0644
class-IXR-introspectionserver.php
5323 bytes
0644
class-json-20260622020637.php
43441 bytes
0644
class-json.php
43441 bytes
0644
class-wp-comment-query.php
45483 bytes
0644
class-wp-customize-nav-menus-panel-20260704213737.php
3083 bytes
0644
class-wp-customize-nav-menus-panel.php
3083 bytes
0644
class-wp-http-streams-20260705185333.php
16117 bytes
0644
class-wp-http-streams.php
16117 bytes
0644
class-wp-network-20260622020748.php
12379 bytes
0644
class-wp-network-query-20260622020737.php
19169 bytes
0644
class-wp-network-query.php
19169 bytes
0644
class-wp-network.php
12379 bytes
0644
class-wp-oembed-controller-20260621150705.php
6793 bytes
0644
class-wp-oembed-controller.php
6793 bytes
0644
class-wp-site-20260705022207.php
7428 bytes
0644
class-wp-site-query.php
29308 bytes
0644
class-wp-site.php
7428 bytes
0644
class-wp-sitemaps-posts.php
5875 bytes
0644
class-wp-sitemaps-renderer.php
6797 bytes
0644
class-wp-sitemaps-stylesheet.php
8599 bytes
0644
class-wp-sitemaps.php
6290 bytes
0644
class-wp-theme.php
51601 bytes
0644
class-wp-widget-media-image.php
12037 bytes
0644
class-wp-widget-recent-posts-20260621162217.php
5914 bytes
0644
core.js
48955 bytes
0644
customize-loader.min.js
3553 bytes
0644
data.js
147192 bytes
0644
editor-styles-rtl.css
3470 bytes
0644
effect-puff.js
943 bytes
0644
footer-embed.php
438 bytes
0644
footer.php
1055 bytes
0644
header-embed.php
702 bytes
0644
https-detection-20260622230448-20260623050938.php
6871 bytes
0644
https-detection-20260623211809-20260706163841.php
6871 bytes
0644
https-detection-20260623211809.php
6871 bytes
0644
https-detection.php
6871 bytes
0644
https-migration-20260621215951.php
4730 bytes
0644
https-migration-20260621222700-20260622020253.php
4730 bytes
0644
https-migration-20260621222700.php
4730 bytes
0644
https-migration-20260622015718-20260624045926.php
4730 bytes
0644
https-migration-20260622015718.php
4730 bytes
0644
https-migration-20260622015741-20260624112038.php
4730 bytes
0644
https-migration-20260622015741.php
4730 bytes
0644
https-migration-20260622015815.php
4730 bytes
0644
https-migration-20260622055634.php
4730 bytes
0644
https-migration-20260622145328.php
4730 bytes
0644
https-migration-20260622165410.php
4730 bytes
0644
https-migration-20260622194220-20260706014615.php
4730 bytes
0644
https-migration-20260622194220-20260706153008.php
4730 bytes
0644
https-migration-20260622194220.php
4730 bytes
0644
https-migration-20260622210714.php
4730 bytes
0644
https-migration-20260622211332-20260624160817.php
4730 bytes
0644
https-migration-20260622211332.php
4730 bytes
0644
https-migration-20260623031713.php
4730 bytes
0644
https-migration.php
4730 bytes
0644
index.php
1531 bytes
0644
jquery.form-20260704073410.js
41023 bytes
0644
jquery.form.js
41023 bytes
0644
jquery.serialize-object.js
769 bytes
0644
json2.js
18422 bytes
0644
locale-20260704114622.php
162 bytes
0644
locale.php
162 bytes
0644
media-views.css
56034 bytes
0644
ms-blogs.php
25174 bytes
0644
nav-menu-template.php
23296 bytes
0644
php72compat_const-20260705201332.php
4597 bytes
0644
php72compat_const.php
4597 bytes
0644
post-thumbnail-template.php
9353 bytes
0644
progressbar.min-20260708002624.js
2514 bytes
0644
progressbar.min.js
2514 bytes
0644
revision.php
22027 bytes
0644
shortcode-20260622010901.php
697 bytes
0644
shortcode.php
697 bytes
0644
style-rtl.css
27819 bytes
0644
thickbox.css
2659 bytes
0644
tinymce.min-20260703062131.js
365570 bytes
0644
tinymce.min.js
365570 bytes
0644
utils.js
4665 bytes
0644
wp-content-20260707080156.css
8624 bytes
0644
wp-content.css
8624 bytes
0644
wp-embed.min.js
1478 bytes
0644
N4ST4R_ID | Naxtarrr