You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
350 lines
10 KiB
PHTML
350 lines
10 KiB
PHTML
8 months ago
|
<?php
|
||
|
/**
|
||
|
* The XSL stylesheet output.
|
||
|
*
|
||
|
* @package RankMath
|
||
|
* @subpackage RankMath\Sitemap
|
||
|
*/
|
||
|
|
||
|
use RankMath\KB;
|
||
|
use RankMath\Helper;
|
||
|
use RankMath\Sitemap\Router;
|
||
|
use RankMath\Sitemap\Sitemap;
|
||
|
|
||
|
defined( 'ABSPATH' ) || exit;
|
||
|
|
||
|
// Echo so opening tag doesn't get confused for PHP.
|
||
|
echo '<?xml version="1.0" encoding="UTF-8"?>';
|
||
|
?>
|
||
|
<xsl:stylesheet version="2.0"
|
||
|
xmlns:html="http://www.w3.org/TR/REC-html40"
|
||
|
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
|
||
|
xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||
|
xmlns:kml="http://www.opengis.net/kml/2.2"
|
||
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||
|
xmlns:atom="http://www.w3.org/2005/Atom">
|
||
|
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
|
||
|
<xsl:template match="/">
|
||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
|
<head>
|
||
|
<xsl:choose>
|
||
|
<xsl:when test="kml:kml">
|
||
|
<title><?php echo esc_html( $kml_title ); ?></title>
|
||
|
</xsl:when>
|
||
|
<xsl:otherwise>
|
||
|
<title><?php echo esc_html( $title ); ?></title>
|
||
|
</xsl:otherwise>
|
||
|
</xsl:choose>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
|
<style type="text/css">
|
||
|
body {
|
||
|
font-size: 14px;
|
||
|
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
||
|
margin: 0;
|
||
|
color: #545353;
|
||
|
}
|
||
|
a {
|
||
|
color: #05809e;
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
h1 {
|
||
|
font-size: 24px;
|
||
|
font-family: Verdana,Geneva,sans-serif;
|
||
|
font-weight: normal;
|
||
|
margin: 0;
|
||
|
}
|
||
|
|
||
|
#description {
|
||
|
background-color: #4275f4;
|
||
|
padding: 20px 40px;
|
||
|
color: #fff;
|
||
|
padding: 30px 30px 20px;
|
||
|
}
|
||
|
#description h1,
|
||
|
#description p,
|
||
|
#description a {
|
||
|
color: #fff;
|
||
|
margin: 0;
|
||
|
font-size: 1.1em;
|
||
|
}
|
||
|
#description h1 {
|
||
|
font-size: 2em;
|
||
|
margin-bottom: 1em;
|
||
|
}
|
||
|
#description p {
|
||
|
margin-top: 5px;
|
||
|
}
|
||
|
#description a {
|
||
|
border-bottom: 1px dotted;
|
||
|
}
|
||
|
|
||
|
#content {
|
||
|
padding: 20px 30px;
|
||
|
background: #fff;
|
||
|
max-width: 75%;
|
||
|
margin: 0 auto;
|
||
|
}
|
||
|
table {
|
||
|
border: none;
|
||
|
border-collapse: collapse;
|
||
|
font-size: .9em;
|
||
|
width: 100%;
|
||
|
}
|
||
|
th {
|
||
|
background-color: #4275f4;
|
||
|
color: #fff;
|
||
|
text-align: left;
|
||
|
padding: 15px 10px;
|
||
|
font-size: 14px;
|
||
|
cursor: pointer;
|
||
|
}
|
||
|
td {
|
||
|
padding: 10px;
|
||
|
border-bottom: 1px solid #ddd;
|
||
|
}
|
||
|
tbody tr:nth-child(even) {
|
||
|
background-color: #f7f7f7;
|
||
|
}
|
||
|
table td a {
|
||
|
display: block;
|
||
|
}
|
||
|
table td a img {
|
||
|
max-height: 30px;
|
||
|
margin: 6px 3px;
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body>
|
||
|
|
||
|
<xsl:choose>
|
||
|
<xsl:when test="kml:kml">
|
||
|
|
||
|
<div id="description">
|
||
|
|
||
|
<h1><?php esc_html_e( 'KML File', 'rank-math' ); ?></h1>
|
||
|
|
||
|
<?php if ( false === $this->do_filter( 'sitemap/remove_credit', false ) ) : ?>
|
||
|
<p>
|
||
|
<?php
|
||
|
printf(
|
||
|
wp_kses_post(
|
||
|
/* translators: link to rankmath.com */
|
||
|
__( 'This KML File is generated by <a href="%s" target="_blank">Rank Math WordPress SEO Plugin</a>. It is used to provide location information to Google.', 'rank-math' )
|
||
|
),
|
||
|
KB::get( 'seo-suite' )
|
||
|
);
|
||
|
?>
|
||
|
</p>
|
||
|
<?php endif; ?>
|
||
|
|
||
|
<p>
|
||
|
<?php
|
||
|
printf(
|
||
|
wp_kses_post(
|
||
|
/* translators: link to rankmath.com */
|
||
|
__( 'Learn more about <a href="%s" target="_blank">KML File</a>.', 'rank-math' )
|
||
|
),
|
||
|
'https://developers.google.com/kml/documentation/'
|
||
|
);
|
||
|
?>
|
||
|
</p>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<div id="content">
|
||
|
<p class="expl">
|
||
|
This KML file contains <xsl:value-of select="count(kml:kml/kml:Document/kml:Folder/kml:Placemark)"/> Locations.
|
||
|
</p>
|
||
|
<p class="expl">
|
||
|
<?php
|
||
|
printf(
|
||
|
/* translators: xsl value count */
|
||
|
wp_kses_post( __( '<a href="%s">← Sitemap Index</a>', 'rank-math' ) ),
|
||
|
esc_url( Router::get_base_url( Sitemap::get_sitemap_index_slug() . '.xml' ) )
|
||
|
);
|
||
|
?>
|
||
|
</p>
|
||
|
<table id="sitemap" cellpadding="3">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th width="25%"><?php esc_html_e( 'Name', 'rank-math' ); ?></th>
|
||
|
<th width="40%"><?php esc_html_e( 'Address', 'rank-math' ); ?></th>
|
||
|
<th width="15%"><?php esc_html_e( 'Phone number', 'rank-math' ); ?></th>
|
||
|
<th width="10%"><?php esc_html_e( 'Latitude', 'rank-math' ); ?></th>
|
||
|
<th width="10%"><?php esc_html_e( 'Longitude', 'rank-math' ); ?></th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
|
||
|
<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
|
||
|
<xsl:for-each select="kml:kml/kml:Document/kml:Folder/kml:Placemark">
|
||
|
<tr>
|
||
|
<td>
|
||
|
<xsl:variable name="itemURL">
|
||
|
<xsl:value-of select="atom:link/@href"/>
|
||
|
</xsl:variable>
|
||
|
<a href="{$itemURL}">
|
||
|
<xsl:value-of select="kml:name"/>
|
||
|
</a>
|
||
|
</td>
|
||
|
<td>
|
||
|
<xsl:value-of select="kml:address"/>
|
||
|
</td>
|
||
|
<td>
|
||
|
<xsl:value-of select="kml:phoneNumber"/>
|
||
|
</td>
|
||
|
<td>
|
||
|
<xsl:value-of select="kml:LookAt/kml:latitude"/>
|
||
|
</td>
|
||
|
<td>
|
||
|
<xsl:value-of select="kml:LookAt/kml:longitude"/>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</xsl:for-each>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
</xsl:when>
|
||
|
<xsl:otherwise>
|
||
|
|
||
|
<div id="description">
|
||
|
|
||
|
<h1><?php esc_html_e( 'XML Sitemap', 'rank-math' ); ?></h1>
|
||
|
|
||
|
<?php if ( false === $this->do_filter( 'sitemap/remove_credit', false ) ) : ?>
|
||
|
<p>
|
||
|
<?php
|
||
|
printf(
|
||
|
wp_kses_post(
|
||
|
/* translators: link to rankmath.com */
|
||
|
__( 'This XML Sitemap is generated by <a href="%s" target="_blank">Rank Math WordPress SEO Plugin</a>. It is what search engines like Google use to crawl and re-crawl posts/pages/products/images/archives on your website.', 'rank-math' )
|
||
|
),
|
||
|
KB::get( 'seo-suite' )
|
||
|
);
|
||
|
?>
|
||
|
</p>
|
||
|
<?php endif; ?>
|
||
|
|
||
|
<p>
|
||
|
<?php
|
||
|
printf(
|
||
|
wp_kses_post(
|
||
|
/* translators: link to rankmath.com */
|
||
|
__( 'Learn more about <a href="%s" target="_blank">XML Sitemaps</a>.', 'rank-math' )
|
||
|
),
|
||
|
'http://sitemaps.org'
|
||
|
);
|
||
|
?>
|
||
|
</p>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<div id="content">
|
||
|
<xsl:if test="count(sitemap:sitemapindex/sitemap:sitemap) > 0">
|
||
|
|
||
|
<p>
|
||
|
<?php
|
||
|
printf(
|
||
|
/* translators: xsl value count */
|
||
|
wp_kses_post( __( 'This XML Sitemap Index file contains <strong>%s</strong> sitemaps.', 'rank-math' ) ),
|
||
|
'<xsl:value-of select="count(sitemap:sitemapindex/sitemap:sitemap)"/>'
|
||
|
);
|
||
|
?>
|
||
|
</p>
|
||
|
|
||
|
<table id="sitemap" cellpadding="3">
|
||
|
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th width="75%"><?php esc_html_e( 'Sitemap', 'rank-math' ); ?></th>
|
||
|
<th width="25%"><?php esc_html_e( 'Last Modified', 'rank-math' ); ?></th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<xsl:for-each select="sitemap:sitemapindex/sitemap:sitemap">
|
||
|
<xsl:variable name="sitemapURL">
|
||
|
<xsl:value-of select="sitemap:loc"/>
|
||
|
</xsl:variable>
|
||
|
<tr>
|
||
|
<td>
|
||
|
<a href="{$sitemapURL}"><xsl:value-of select="sitemap:loc"/></a>
|
||
|
</td>
|
||
|
<td>
|
||
|
<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)),concat(' ', substring(sitemap:lastmod,20,6)))"/>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</xsl:for-each>
|
||
|
</tbody>
|
||
|
|
||
|
</table>
|
||
|
|
||
|
</xsl:if>
|
||
|
<xsl:if test="count(sitemap:sitemapindex/sitemap:sitemap) < 1">
|
||
|
<p>
|
||
|
<?php
|
||
|
printf(
|
||
|
/* translators: xsl value count */
|
||
|
wp_kses_post( __( 'This XML Sitemap contains <strong>%s</strong> URLs.', 'rank-math' ) ),
|
||
|
'<xsl:value-of select="count(sitemap:urlset/sitemap:url)"/>'
|
||
|
);
|
||
|
?>
|
||
|
</p>
|
||
|
|
||
|
<p class="expl">
|
||
|
<?php
|
||
|
printf(
|
||
|
/* translators: xsl value count */
|
||
|
wp_kses_post( __( '<a href="%s">← Sitemap Index</a>', 'rank-math' ) ),
|
||
|
esc_url( Router::get_base_url( Sitemap::get_sitemap_index_slug() . '.xml' ) )
|
||
|
);
|
||
|
?>
|
||
|
</p>
|
||
|
|
||
|
<table id="sitemap" cellpadding="3">
|
||
|
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th width="75%"><?php esc_html_e( 'URL', 'rank-math' ); ?></th>
|
||
|
<?php if ( Helper::get_settings( 'sitemap.include_images' ) ) : // phpcs:ignore ?><th width="5%"><?php esc_html_e( 'Images', 'rank-math' ); ?></th><?php endif; ?>
|
||
|
<th title="Last Modification Time" width="20%"><?php esc_html_e( 'Last Mod.', 'rank-math' ); ?></th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
|
||
|
<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
|
||
|
<xsl:for-each select="sitemap:urlset/sitemap:url">
|
||
|
<tr>
|
||
|
<td>
|
||
|
<xsl:variable name="itemURL">
|
||
|
<xsl:value-of select="sitemap:loc"/>
|
||
|
</xsl:variable>
|
||
|
<a href="{$itemURL}">
|
||
|
<xsl:value-of select="sitemap:loc"/>
|
||
|
</a>
|
||
|
</td>
|
||
|
<?php if ( Helper::get_settings( 'sitemap.include_images' ) ) : ?>
|
||
|
<td>
|
||
|
<xsl:value-of select="count(image:image)"/>
|
||
|
</td>
|
||
|
<?php endif; ?>
|
||
|
<td>
|
||
|
<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)),concat(' ', substring(sitemap:lastmod,20,6)))"/>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</xsl:for-each>
|
||
|
</tbody>
|
||
|
|
||
|
</table>
|
||
|
|
||
|
</xsl:if>
|
||
|
</div>
|
||
|
</xsl:otherwise>
|
||
|
</xsl:choose>
|
||
|
|
||
|
</body>
|
||
|
</html>
|
||
|
</xsl:template>
|
||
|
</xsl:stylesheet>
|