€‰*P‰*0‰*`‰*‰* ‰*@ʈ*đ݈*@ֈ* ‰*ŕ‰*ŕéˆ* íˆ*`áˆ*Ŕ ‰*Ԉ*ŕˆ* ˆ*°čˆ*@éˆ*Đčˆ*0éˆ*ŕčˆ*‰* ‰*@ʈ*đ݈*Ůˆ* ‰*ŕ‰*ŕéˆ*`ďˆ*çˆ*Ŕ ‰*@Ԉ*đŕˆ* ˆ*°čˆ*@éˆ*Đčˆ*đčˆ*ŕčˆ*‰* ‰*@ʈ*đ݈* ܈* ‰*ŕ‰*ŕéˆ*ŕňˆ*@čˆ*Ŕ ‰*@Ԉ*ŕˆ* ˆ*°čˆ*@éˆ*Đčˆ*0éˆ*ŕčˆ*‰* ‰*@ʈ* ~ˆ*Ŕuˆ*[ˆ*ĐXˆ*`‹ˆ* íˆ*€‚ˆ*Ŕ ‰*Ԉ*ŕ€ˆ*°ˆ*°čˆ*@éˆ*Đčˆ*0éˆ*ŕčˆ*‰* ‰*@ʈ* ~ˆ*p|ˆ*[ˆ*ĐXˆ*`‹ˆ* íˆ*€‚ˆ*Ŕ ‰*@Ԉ*ŕ€ˆ*°ˆ*°čˆ*@éˆ*Đčˆ*đčˆ*ŕčˆ*‰* ‰*@ʈ* ~ˆ*Đ}ˆ*[ˆ*ĐXˆ*`‹ˆ* íˆ*€‚ˆ*Ŕ ‰*@Ԉ*ŕ€ˆ*°ˆ*°čˆ*@éˆ*Đčˆ*0éˆ*ŕčˆ*‰* ‰*@ʈ*đ݈*@ֈ* ‰*ŕ‰*ŕéˆ*`‰*pˆ*Ŕ ‰*Ԉ*ŕˆ* ˆ*`ˆ*ˆ*Đˆ*0ˆ*`‰*‰* ‰*@ʈ*đ݈*@ֈ* ‰*ŕ‰*ŕéˆ*`‰*`áˆ*Ŕ ‰*Ԉ*ŕˆ* ˆ*°čˆ*@éˆ*Đčˆ*P)ˆ*ŕčˆ*‰* ‰*đو*Ŕ#‰*Ŕ%‰* ‰* (‰*‰*`‰*@&‰*Ŕ ‰*ŕ ‰*Łˆ*0 ‰*p‰*€‰*P‰*0‰*`‰*‰* ‰*€•ˆ*ŕlˆ*oˆ*[ˆ*€rˆ*đ[ˆ*0cˆ*oˆ*Ŕ ‰*ŕ ‰*•ˆ* _ˆ*p‰*€‰*P‰*0‰*`‰*‰* ‰*0ł…*Ŕ´…*p؇*ڇ*˙˙˙p^œ*Xyœ*€Ž‚*˙˙˙Xyœ*p^œ*@Š‚*‚*Ŕ–* Ž–*p‘–*@ź–*‘†چpüČł*őţ˙oő*Ŕm*ŕE€* pˆ p„pĐp€ŰŸ*¸Ř‚*Č‚* ü˙˙oŘ^ý˙˙o)ű˙˙oţ˙˙oˆd˙˙˙ođ˙˙o0ö*$"‚*#%@) @†™* Š*`j™*Ŕ8™*a‹* —Š*€Ž™*P\š*Ŕ0™*9™*€ş™*@F™*Đ8™*˝™*ŕ_Ľ*Ŕ€™*i™*@”™*0O™*@f™*˜™*0ŘĽ* Ś*a‹*@3™*_™*pj™*P˘¤*0Y™*°Ÿ™*°/š* O™*@z™*€ş™*đĄ¤*@I™* š™*P>Ś*€ˆ™*pC™*]™*PçĽ*˜™*9™*€Ż™*Đ0Ľ*Ŕ@™*Đ8™*pŐĽ*°8™*ěĽ*€˘™*€C™*ľ™*€¤¤*ŕ`™*ĐŇĽ*đҤ*P[š* =Ś*@†™*Čţ˙˙˙˙˙˙Ŕţ˙˙˙˙˙˙čţ˙˙˙˙˙˙Řţ˙˙˙˙˙˙ŕţ˙˙˙˙˙˙ôţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Č *XóŸ*¨ţ˙˙˙˙˙˙PćŸ*¸ţ˙˙˙˙˙˙8` *x ¨* ţ˙˙˙˙˙˙@` *0Š*@U * Č *¨öŸ*@ćŸ*DâŸ*đţ˙˙˙˙˙˙€T *p] *0` *xóŸ*ŕŸ*H ¨*ŕôŸ*đb *hćŸ*Đ] * öŸ*âŸ*@ ¨*€É *  ¨*°b *ŕČ *(ăŸ*HâŸ*ŕčŸ*póŸ*HćŸ*Ě] *@âŸ*`ćŸ*`úŸ*hS *˜ůŸ* b *0§…*@Č *Đţ˙˙˙˙˙˙°öŸ*`S *XćŸ*ţ˙˙˙˙˙˙ŔőŸ*`óŸ*Č] * f *xÉ *¨*póŸ*ǟ*X] *čâŸ*Č *xóŸ*¸b *ŕT *˜ţ˙˙˙˙˙˙P†Š*°ţ˙˙˙˙˙˙ } 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', '', $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". ) ); } } }