You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
214 lines
6.3 KiB
214 lines
6.3 KiB
<?php
|
|
/**
|
|
* Sitemap XSL.
|
|
*
|
|
* Dynamically generates the XML Sitemap's XSL file.
|
|
*
|
|
* @package All-in-One-SEO-Pack
|
|
*
|
|
* @since 2.3.6
|
|
* @since 2.3.12.3 Refactoring indentation and added xmlns fix for Chrome rendering.
|
|
*/
|
|
|
|
echo '<?xml version="1.0" encoding="UTF-8"?>';
|
|
?>
|
|
<xsl:stylesheet version="2.0"
|
|
xmlns="http://www.w3.org/1999/xhtml"
|
|
xmlns:html="http://www.w3.org/TR/REC-html40"
|
|
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
|
|
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
|
|
xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
|
|
<xsl:template match="/">
|
|
<xsl:variable name="fileType">
|
|
<xsl:choose>
|
|
<xsl:when test="//sitemap:url">Sitemap</xsl:when>
|
|
<xsl:otherwise>SitemapIndex</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>
|
|
<xsl:choose><xsl:when test="$fileType='Sitemap'">Sitemap</xsl:when>
|
|
<xsl:otherwise>Sitemap Index</xsl:otherwise>
|
|
</xsl:choose>
|
|
</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<style type="text/css">
|
|
body {
|
|
margin: 0;
|
|
font-family: Helvetica, Arial, sans-serif;
|
|
font-size: 68.5%;
|
|
}
|
|
#content-head {
|
|
background-color: #4275f4;
|
|
padding: 20px 40px;
|
|
}
|
|
#content-head h1,
|
|
#content-head p,
|
|
#content-head a {
|
|
color: #fff;
|
|
font-size: 1.2em;
|
|
}
|
|
#content-head h1 {
|
|
font-size: 2em;
|
|
}
|
|
table {
|
|
margin: 20px 40px;
|
|
border: none;
|
|
border-collapse: collapse;
|
|
}
|
|
table {
|
|
font-size: 1em;
|
|
width: 75%;
|
|
}
|
|
th {
|
|
border-bottom: 1px solid #ccc;
|
|
text-align: left;
|
|
padding: 15px 5px;
|
|
font-size: 14px;
|
|
}
|
|
td {
|
|
padding: 10px 5px;
|
|
border-left: 3px solid #fff;
|
|
}
|
|
tr.stripe {
|
|
background-color: #f7f7f7;
|
|
}
|
|
table td a {
|
|
display: block;
|
|
}
|
|
table td a img {
|
|
max-height: 30px;
|
|
margin: 6px 3px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="content">
|
|
<div id="content-head">
|
|
<h1>XML Sitemap</h1>
|
|
<p>Generated by <a href="https://semperplugins.com">All in One </a> <a href="https://semperplugins.com/all-in-one-seo-pack-pro-version/">SEO</a>, this is an XML Sitemap, meant to be consumed by search engines like Google or Bing.<br/>
|
|
You can find more information about XML sitemaps at <a href="http://sitemaps.org">sitemaps.org</a>.</p>
|
|
<p><xsl:choose>
|
|
<xsl:when test="$fileType='Sitemap'">
|
|
This sitemap contains <xsl:value-of select="count(sitemap:urlset/sitemap:url)"></xsl:value-of> URLs</xsl:when>
|
|
<xsl:otherwise>This sitemap index contains <xsl:value-of select="count(sitemap:sitemapindex/sitemap:sitemap)"></xsl:value-of> sitemaps</xsl:otherwise>
|
|
</xsl:choose></p>
|
|
</div>
|
|
<xsl:choose>
|
|
<xsl:when test="$fileType='Sitemap'">
|
|
<xsl:call-template name="sitemapTable"/></xsl:when>
|
|
<xsl:otherwise><xsl:call-template name="siteindexTable"/></xsl:otherwise>
|
|
</xsl:choose>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
</xsl:template>
|
|
<xsl:template name="siteindexTable">
|
|
<table cellpadding="3">
|
|
<thead>
|
|
<tr>
|
|
<th width="50%">URL</th>
|
|
<th>LastChange</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
|
|
<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
|
|
<xsl:for-each select="sitemap:sitemapindex/sitemap:sitemap">
|
|
<tr>
|
|
<xsl:if test="position() mod 2 != 1">
|
|
<xsl:attribute name="class">stripe</xsl:attribute>
|
|
</xsl:if>
|
|
<td>
|
|
<xsl:variable name="itemURL">
|
|
<xsl:value-of select="sitemap:loc"/>
|
|
</xsl:variable>
|
|
<a href="{$itemURL}">
|
|
<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)))"/>
|
|
</td>
|
|
</tr>
|
|
</xsl:for-each>
|
|
</tbody>
|
|
</table>
|
|
</xsl:template>
|
|
<xsl:template name="sitemapTable">
|
|
<table cellpadding="3">
|
|
<thead>
|
|
<tr>
|
|
<th width="50%">URL</th>
|
|
<?php
|
|
if ( aiosp_include_images() ) {
|
|
?>
|
|
<th>Images</th>
|
|
<?php
|
|
}
|
|
?>
|
|
<th>Priority</th>
|
|
<th>Change Frequency</th>
|
|
<th>Last Change</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>
|
|
<xsl:if test="position() mod 2 != 1">
|
|
<xsl:attribute name="class">stripe</xsl:attribute>
|
|
</xsl:if>
|
|
<td>
|
|
<xsl:variable name="itemURL">
|
|
<xsl:value-of select="sitemap:loc"/>
|
|
</xsl:variable>
|
|
<a href="{$itemURL}">
|
|
<xsl:value-of select="sitemap:loc"/>
|
|
</a>
|
|
<xsl:for-each select="video:video">
|
|
<xsl:variable name="thumbURL">
|
|
<xsl:value-of select="video:thumbnail_loc"/>
|
|
</xsl:variable>
|
|
<xsl:variable name="playURL">
|
|
<xsl:value-of select="video:player_loc"/>
|
|
</xsl:variable>
|
|
<xsl:if test="$thumbURL != ''">
|
|
<a href="{$playURL}"><img src="{$thumbURL}" style="max-width:60px;float:right;"/></a>
|
|
</xsl:if>
|
|
</xsl:for-each>
|
|
</td>
|
|
<?php
|
|
if ( aiosp_include_images() ) {
|
|
?>
|
|
<td>
|
|
<xsl:value-of select="count(image:image)"/>
|
|
</td>
|
|
<?php
|
|
}
|
|
?>
|
|
<td>
|
|
<xsl:if test="string(number(sitemap:priority))!='NaN'">
|
|
<xsl:value-of select="concat(sitemap:priority*100,'%')"/>
|
|
</xsl:if>
|
|
</td>
|
|
<td>
|
|
<xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
|
|
</td>
|
|
<td>
|
|
<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
|
|
</td>
|
|
<td>
|
|
</td>
|
|
</tr>
|
|
</xsl:for-each>
|
|
</tbody>
|
|
</table>
|
|
</xsl:template>
|
|
</xsl:stylesheet>
|
|
<?php
|