^õĪnU ^õĪnU nU H`õĪnU ĀæôĪnU `õĪnU ÐŋôĪnU įôĪnU ĀæôĪnU @ nU ÃF K ģ TĢnU â E 1 °ųĪnU ,)Ę $ õĪnU 0 1 ^[a-zA-Z0-9_\-]+ $ ĒnU ! anywhere @ !
ĒnU ! (?^:\.+$) A aõĪnU O ^ $pattern ! ðaõĪnU õĪnU ģ (bõĪnU ÐaõĪnU ØgõĪnU hhõĪnU ą nU G hbõĪnU ÐaõĪnU hhõĪnU hhõĪnU ` nU bõĪnU ÐaõĪnU čbõĪnU čbõĪnU 06 nU ē ØbõĪnU ÐaõĪnU xbõĪnU xbõĪnU 06 nU Dē cõĪnU ÐaõĪnU ØgõĪnU ØgõĪnU nU ŋ 0cõĪnU xbõĪnU XcõĪnU ÐaõĪnU cõĪnU cõĪnU nU Dē cõĪnU ÐaõĪnU °bõĪnU °bõĪnU 06 nU Dē ČcõĪnU ÐaõĪnU hcõĪnU hcõĪnU 06 nU Dē A
dõĪnU N ^ $identity A JdõĪnU N ^ $wtyp A dõĪnU N ^
$publicsuffix ĀdõĪnU eõĪnU ÐaõĪnU nõĪnU ppõĪnU ÐĒ nU Í øfõĪnU øfõĪnU PeõĪnU ÐaõĪnU ppõĪnU ÐdõĪnU nU YF `eõĪnU HfõĪnU eõĪnU ÐaõĪnU HfõĪnU HfõĪnU 06 nU F ĻeõĪnU fõĪnU øeõĪnU ÐaõĪnU fõĪnU fõĪnU @ nU ÃF Z ģ ÅĒnU â O 8fõĪnU ÐaõĪnU fõĪnU fõĪnU Ð nU xfõĪnU ÐaõĪnU eõĪnU eõĪnU Ð nU čfõĪnU ÐaõĪnU ÐoõĪnU ÐoõĪnU nU F fõĪnU fõĪnU f @ gõĪnU ÐaõĪnU ÐdõĪnU ÐdõĪnU nU hgõĪnU ÐaõĪnU °õĪnU °õĪnU nU Â xgõĪnU XõĪnU ČgõĪnU ÐaõĪnU bõĪnU ØgõĪnU @ nU ÃF Y ģ ÄĒnU â N hõĪnU ÐaõĪnU ĻeõĪnU ĻeõĪnU āÐ nU %FE hõĪnU čbõĪnU XhõĪnU ÐaõĪnU 0cõĪnU čbõĪnU nU D bõĪnU hhõĪnU hõĪnU ÐaõĪnU hõĪnU hõĪnU Ę nU 8bõĪnU ÐhõĪnU dõĪnU iõĪnU ÐaõĪnU (iõĪnU (iõĪnU Ð nU `iõĪnU ÐaõĪnU õĪnU õĪnU Č nU
yF piõĪnU āhõĪnU iõĪnU ÐaõĪnU čiõĪnU čiõĪnU nU D ØiõĪnU ÐaõĪnU āhõĪnU āhõĪnU Ð nU F jõĪnU ÐaõĪnU ĻiõĪnU ĻiõĪnU 06 nU F XjõĪnU ÐaõĪnU øõĪnU @õĪnU nU ZF ĻjõĪnU hjõĪnU jõĪnU ÐaõĪnU jõĪnU jõĪnU Ð nU ØjõĪnU ÐaõĪnU hjõĪnU hjõĪnU nU D čjõĪnU kõĪnU ÐaõĪnU hjõĪnU ĻjõĪnU Ð nU `kõĪnU ÐaõĪnU pyõĪnU põĪnU ÐĒ nU Í hlõĪnU hlõĪnU ĻkõĪnU ÐaõĪnU hŠõĪnU ļkõĪnU ° nU ° lõĪnU økõĪnU čkõĪnU ÐaõĪnU hŠõĪnU ~õĪnU nU D pkõĪnU XlõĪnU ÐaõĪnU hŠõĪnU pkõĪnU pč nU g lõĪnU ÐaõĪnU (kõĪnU (kõĪnU nU ØlõĪnU ÐaõĪnU pkõĪnU økõĪnU nU YF (mõĪnU člõĪnU mõĪnU ÐaõĪnU lõĪnU lõĪnU Ð nU `mõĪnU ÐaõĪnU člõĪnU člõĪnU 06 nU F pmõĪnU ÐmõĪnU ĀmõĪnU ÐaõĪnU ÐmõĪnU ÐmõĪnU @ nU ÃF ] ģ ÆĒnU â O nõĪnU ÐaõĪnU ČĐõĪnU ČĐõĪnU 06 nU F! nõĪnU xnõĪnU hnõĪnU ÐaõĪnU oõĪnU xnõĪnU @ nU ÃF \ ģ ÆĒnU â O ĻnõĪnU ÐaõĪnU pmõĪnU pmõĪnU nU D ļnõĪnU ðnõĪnU ÐaõĪnU pmõĪnU xnõĪnU ĩ nU ķ oõĪnU HoõĪnU 8oõĪnU ÐaõĪnU pmõĪnU ļnõĪnU Ā nU $B HoõĪnU HoõĪnU xoõĪnU ÐaõĪnU oõĪnU oõĪnU Ð nU ĀoõĪnU ÐaõĪnU ļnõĪnU oõĪnU 06 nU F2 ÐoõĪnU 0põĪnU põĪnU ÐaõĪnU `eõĪnU 0põĪnU @ nU ÃF [ ģ __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().
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',
'',
$this->stylesheet,
''
)
);
foreach ( $url_list as $url_item ) {
$url = $urlset->addChild( 'url' );
// Add each element as a child node to the 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".
)
);
}
}
}