Initial commit: Atomaste website

This commit is contained in:
2025-12-10 12:17:30 -05:00
commit 0b9e5d1605
19260 changed files with 5206382 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
<?php
/**
* This is the output for the columns on the page/post editor.
*
* @since 4.0.0
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
?>
<div id="<?php echo esc_attr( $columnName ); ?>-<?php echo esc_attr( $postId ); ?>">
<?php require AIOSEO_DIR . '/app/Common/Views/parts/loader.php'; ?>
</div>

View File

@@ -0,0 +1,18 @@
<?php
/**
* This is the output for the columns on the taxonomy screen.
*
* @since 4.0.0
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
?>
<div id="<?php echo esc_attr( $columnName ); ?>-<?php echo esc_attr( $termId ); ?>">
<?php require AIOSEO_DIR . '/app/Common/Views/parts/loader.php'; ?>
</div>

View File

@@ -0,0 +1,26 @@
<?php
/**
* This is the output for Microsoft Clarity on the page.
*
* @since 4.1.9
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$projectId = aioseo()->options->webmasterTools->microsoftClarityProjectId;
if ( empty( $projectId ) || aioseo()->helpers->isAmpPage() ) {
return;
}
?>
<script type="text/javascript">
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1;
t.src="https://www.clarity.ms/tag/"+i+"?ref=aioseo";y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "<?php echo esc_js( $projectId ); ?>");
</script>
<?php
// Leave this comment to allow for a line break after the closing script tag.

View File

@@ -0,0 +1,70 @@
<?php
/**
* This is the output for meta on the page.
*
* @since 4.0.0
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
// phpcs:disable Generic.WhiteSpace.ScopeIndent.Incorrect
// phpcs:disable Generic.WhiteSpace.ScopeIndent.IncorrectExact
$description = aioseo()->helpers->encodeOutputHtml( aioseo()->meta->description->getDescription() );
$robots = aioseo()->meta->robots->meta();
$keywords = $this->keywords->getKeywords();
$canonical = aioseo()->helpers->canonicalUrl();
$links = $this->links->getLinks();
$postType = get_post_type();
$post = aioseo()->helpers->getPost();
?>
<?php if ( $description ) : ?>
<meta name="description" content="<?php echo esc_attr( $description ); ?>" />
<?php endif; ?>
<?php if ( $robots ) : ?>
<meta name="robots" content="<?php echo esc_html( $robots ); ?>" />
<?php
endif;
if (
apply_filters( 'aioseo_author_meta', true ) &&
! is_page() &&
post_type_supports( $postType, 'author' ) &&
! empty( $post->post_author ) &&
! empty( get_the_author_meta( 'display_name', $post->post_author ) )
) :
?>
<meta name="author" content="<?php echo esc_attr( get_the_author_meta( 'display_name', $post->post_author ) ); ?>"/>
<?php
endif;
?>
<?php // Adds the site verification meta for webmaster tools. ?>
<?php foreach ( $this->verification->meta() as $metaName => $value ) : ?>
<meta name="<?php echo esc_attr( $metaName ); ?>" content="<?php echo esc_attr( trim( wp_strip_all_tags( $value ) ) ); ?>" />
<?php endforeach; ?>
<?php if ( ! empty( $keywords ) ) : ?>
<meta name="keywords" content="<?php echo esc_attr( $keywords ); ?>" />
<?php endif; ?>
<?php if ( ! empty( $canonical ) && ! aioseo()->helpers->isAmpPage( 'amp' ) ) : ?>
<link rel="canonical" href="<?php echo esc_url( $canonical ); ?>" />
<?php endif; ?>
<?php if ( ! empty( $links['prev'] ) ) : ?>
<link rel="prev" href="<?php echo esc_url( $links['prev'] ); ?>" />
<?php endif; ?>
<?php if ( ! empty( $links['next'] ) ) : ?>
<link rel="next" href="<?php echo esc_url( $links['next'] ); ?>" />
<?php endif; ?>
<?php // Add our generator output. ?>
<meta name="generator" content="<?php echo trim( sprintf( '%1$s (%2$s) %3$s', esc_html( AIOSEO_PLUGIN_NAME ), esc_html( AIOSEO_PLUGIN_SHORT_NAME ), aioseo()->helpers->getAioseoVersion() ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, Generic.Files.LineLength.MaxExceeded ?>" />
<?php
// This adds the miscellaneous verification to the head tag inside our comments.
// @TODO: [V4+] Maybe move this out of meta? Better idea would be to have a global wp_head where meta gets
// attached as well as other things like this:
$miscellaneous = aioseo()->helpers->decodeHtmlEntities( aioseo()->options->webmasterTools->miscellaneousVerification );
$miscellaneous = trim( $miscellaneous );
if ( ! empty( $miscellaneous ) ) {
echo "\n\t\t$miscellaneous\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}

View File

@@ -0,0 +1,25 @@
<?php
/**
* This is the output for structured data/schema on the page.
*
* @since 4.0.0
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
// phpcs:disable Generic.WhiteSpace.ScopeIndent.Incorrect
// phpcs:disable Generic.WhiteSpace.ScopeIndent.IncorrectExact
// phpcs:disable Generic.Files.EndFileNoNewline.Found
$schema = aioseo()->schema->get();
?>
<?php if ( ! empty( $schema ) ) : ?>
<script type="application/ld+json" class="aioseo-schema">
<?php echo $schema . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</script>
<?php
endif;

View File

@@ -0,0 +1,34 @@
<?php
/**
* This is the output for social meta on the page.
*
* @since 4.0.0
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable Generic.WhiteSpace.ScopeIndent
// Set context for meta class to social meta.
$facebookMeta = aioseo()->social->output->getFacebookMeta();
foreach ( $facebookMeta as $key => $meta ) :
// Each article tag needs to be output in a separate meta tag so we cast and loop over each key.
if ( ! is_array( $meta ) ) {
$meta = [ $meta ];
}
foreach ( $meta as $m ) :
?>
<meta property="<?php echo esc_attr( $key ); ?>" content="<?php echo esc_attr( $m ); ?>" />
<?php
endforeach;
endforeach;
$twitterMeta = aioseo()->social->output->getTwitterMeta();
foreach ( $twitterMeta as $key => $meta ) :
?>
<meta name="<?php echo esc_attr( $key ); ?>" content="<?php echo esc_attr( $meta ); ?>" />
<?php
endforeach;

View File

@@ -0,0 +1,62 @@
<?php
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
?>
<style>
.aioseo-loading-spinner {
width: 35px;
height: 35px;
position: absolute;
}
.aioseo-loading-spinner .double-bounce1,
.aioseo-loading-spinner .double-bounce2 {
width: 100%;
height: 100%;
border-radius: 50%;
background-color: #fff;
opacity: 0.6;
position: absolute;
top: 0;
left: 0;
-webkit-animation: aioseo-sk-bounce 1.3s infinite ease-in-out;
animation: aioseo-sk-bounce 1.3s infinite ease-in-out;
}
.aioseo-loading-spinner.dark .double-bounce1,
.aioseo-loading-spinner.dark .double-bounce2 {
background-color: #8C8F9A;
}
.aioseo-loading-spinner .double-bounce2 {
-webkit-animation-delay: -0.65s;
animation-delay: -0.65s;
}
.aioseo-loading-spinner {}
.aioseo-loading-spinner {}
@-webkit-keyframes aioseo-sk-bounce {
0%, 100% { -webkit-transform: scale(0.0) }
50% { -webkit-transform: scale(1.0) }
}
@keyframes aioseo-sk-bounce {
0%, 100% {
transform: scale(0.0);
-webkit-transform: scale(0.0);
} 50% {
transform: scale(1.0);
-webkit-transform: scale(1.0);
}
}
</style>
<div style="height:50px; position:relative;">
<div class="aioseo-loading-spinner dark" style="top:calc( 50% - 17px);left:calc( 50% - 17px);">
<div class="double-bounce1"></div>
<div class="double-bounce2"></div>
</div>
</div>

View File

@@ -0,0 +1,25 @@
<?php
/**
* Htaccess rewrite rules for sites using plain permalinks.
*
* @since 4.2.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable
?>
# START: All in One SEO Sitemap Rewrite Rules
# Do not make edits to these rules!
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule sitemap(|[0-9]+)\.xml$ /index.php [L]
RewriteRule (default|video)-sitemap\.xsl /index.php [L]
</IfModule>
# END: All in One SEO Sitemap Rewrite Rules

View File

@@ -0,0 +1,21 @@
<?php
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
// phpcs:disable Generic.ControlStructures.InlineControlStructure.NotAllowed
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
?>
<div class="aioseo-html-sitemap">
<div class="aioseo-html-sitemap-compact-archive">
<?php if ( empty( $data['dateArchives'] ) ) esc_html_e( 'No date archives could be found.', 'all-in-one-seo-pack' ); ?>
<?php if ( ! empty( $data['lines'] ) ) : ?>
<ul>
<?php echo $data['lines']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</ul>
<?php endif; ?>
</div>
</div>

View File

@@ -0,0 +1,197 @@
<?php
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
?>
<div class="aioseo-html-sitemap">
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" class="aioseo-title">
<?php esc_html_e( 'Title', 'all-in-one-seo-pack' ); ?>
</label>
<input
type="text"
id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>"
value="<?php echo esc_attr( $instance['title'] ); ?>"
class="widefat"
/>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'archives' ) ); ?>">
<input
type="checkbox"
id="<?php echo esc_attr( $this->get_field_id( 'archives' ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'archives' ) ); ?>"
<?php
if ( 'on' === $instance['archives'] ) {
echo 'checked="checked"';
}
?>
class="widefat"
/>
<?php esc_html_e( 'Compact Archives', 'all-in-one-seo-pack' ); ?>
</label>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'show_label' ) ); ?>">
<input
type="checkbox"
id="<?php echo esc_attr( $this->get_field_id( 'show_label' ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'show_label' ) ); ?>"
<?php
if ( 'on' === $instance['show_label'] ) {
echo 'checked="checked"';
}
?>
class="widefat"
/>
<?php esc_html_e( 'Show Labels', 'all-in-one-seo-pack' ); ?>
</label>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'publication_date' ) ); ?>">
<input
type="checkbox"
id="<?php echo esc_attr( $this->get_field_id( 'publication_date' ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'publication_date' ) ); ?>"
<?php
if ( 'on' === $instance['publication_date'] ) {
echo 'checked="checked"';
}
?>
class="widefat"
/>
<?php esc_html_e( 'Show Publication Date', 'all-in-one-seo-pack' ); ?>
</label>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'post_types' ) ); ?>" class="aioseo-title">
<?php esc_html_e( 'Post Types', 'all-in-one-seo-pack' ); ?>
</label>
<div class="aioseo-columns">
<?php foreach ( $postTypeObjects as $i => $postTypeObject ) : ?>
<div>
<label>
<input
type="checkbox"
name="<?php echo esc_attr( $this->get_field_name( 'post_types' ) ); ?>[]"
id="<?php echo esc_attr( $this->get_field_id( 'post_types' . $i ) ); ?>"
<?php checked( in_array( $postTypeObject['name'], $instance['post_types'], true ) ); ?>
value="<?php echo esc_html( $i ); ?>"
/>
<?php echo esc_html( $postTypeObject['label'] ); ?>
</label>
</div>
<?php endforeach ?>
</div>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'taxonomies' ) ); ?>" class="aioseo-title">
<?php esc_html_e( 'Taxonomies', 'all-in-one-seo-pack' ); ?>
</label>
<div class="aioseo-columns">
<?php foreach ( $taxonomyObjects as $i => $taxonomyObject ) : ?>
<div>
<label>
<input
type="checkbox"
name="<?php echo esc_attr( $this->get_field_name( 'taxonomies' ) ); ?>[]"
id="<?php echo esc_attr( $this->get_field_id( 'taxonomies' . $i ) ); ?>"
<?php checked( in_array( $taxonomyObject['name'], $instance['taxonomies'], true ) ); ?>
value="<?php echo esc_html( $i ); ?>"
/>
<?php echo esc_html( $taxonomyObject['label'] ); ?>
</label>
</div>
<?php endforeach ?>
</div>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'order_by' ) ); ?>" class="aioseo-title">
<?php esc_html_e( 'Sort Order', 'all-in-one-seo-pack' ); ?>
</label>
<select name="<?php echo esc_attr( $this->get_field_name( 'order_by' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'order_by' ) ); ?>" class="widefat">
<option value="publish_date"<?php selected( 'publish_date', $instance['order_by'], true ); ?>>
<?php esc_html_e( 'Publish Date', 'all-in-one-seo-pack' ); ?>
</option>
<option value="last_updated"<?php selected( 'last_updated', $instance['order_by'], true ); ?>>
<?php esc_html_e( 'Last Updated', 'all-in-one-seo-pack' ); ?>
</option>
<option value="alphabetical"<?php selected( 'alphabetical', $instance['order_by'], true ); ?>>
<?php esc_html_e( 'Alphabetical', 'all-in-one-seo-pack' ); ?>
</option>
<option value="id"<?php selected( 'id', $instance['order_by'], true ); ?>>
<?php esc_html_e( 'ID', 'all-in-one-seo-pack' ); ?>
</option>
</select>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'order' ) ); ?>" class="aioseo-title">
<?php esc_html_e( 'Sort Direction', 'all-in-one-seo-pack' ); ?>
</label>
<select name="<?php echo esc_attr( $this->get_field_name( 'order' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'order' ) ); ?>" class="widefat">
<option value="asc"<?php echo ( 'asc' === $instance['order'] ) ? ' selected="selected"' : '' ?>><?php esc_html_e( 'Ascending', 'all-in-one-seo-pack' ); ?></option>
<option value="desc"<?php echo ( 'desc' === $instance['order'] ) ? ' selected="selected"' : '' ?>"><?php esc_html_e( 'Descending', 'all-in-one-seo-pack' ); ?></option>
</select>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'excluded_posts' ) ); ?>" class="aioseo-title">
<?php esc_html_e( 'Exclude Posts / Pages', 'all-in-one-seo-pack' ); ?>
</label>
<input
type="text"
value="<?php echo esc_attr( $instance['excluded_posts'] ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'excluded_posts' ) ); ?>"
id="<?php echo esc_attr( $this->get_field_id( 'excluded_posts' ) ); ?>"
class="widefat"
/>
<p class="aioseo-description"><?php esc_html_e( 'Enter a comma-separated list of post IDs.', 'all-in-one-seo-pack' ); ?></p>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'excluded_terms' ) ); ?>" class="aioseo-title">
<?php esc_html_e( 'Exclude Terms', 'all-in-one-seo-pack' ); ?>
</label>
<input
type="text"
value="<?php echo esc_attr( $instance['excluded_terms'] ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'excluded_terms' ) ); ?>"
id="<?php echo esc_attr( $this->get_field_id( 'excluded_terms' ) ); ?>"
class="widefat"
/>
<p class="aioseo-description"><?php esc_html_e( 'Enter a comma-separated list of term IDs.', 'all-in-one-seo-pack' ); ?></p>
</p>
</div>
<style>
.aioseo-html-sitemap label.aioseo-title,
.aioseo-html-sitemap label.aioseo-title select {
color: #141B38 !important;
font-weight: bold !important;
}
.aioseo-html-sitemap .aioseo-description {
margin-top: -5px;
font-style: italic;
font-size: 13px;
}
.aioseo-html-sitemap select, .aioseo-html-sitemap input[type=text] {
margin-top: 8px;
}
.aioseo-html-sitemap .aioseo-columns {
display: flex;
flex-wrap: wrap;
}
.aioseo-html-sitemap .aioseo-columns div {
flex: 0 0 50%;
}
</style>

View File

@@ -0,0 +1,68 @@
<?php
/**
* XML template for our sitemap index pages.
*
* @since 4.0.0
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable
?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
<?php if ( ! aioseo()->sitemap->helpers->excludeImages() ): ?>
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
<?php endif; ?>
>
<?php foreach ( $entries as $entry ) {
if ( empty( $entry['loc'] ) ) {
continue;
}
?>
<url>
<loc><?php aioseo()->sitemap->output->escapeAndEcho( $entry['loc'] ); ?></loc><?php
if ( ! empty( $entry['lastmod'] ) ) {
?>
<lastmod><?php aioseo()->sitemap->output->escapeAndEcho( $entry['lastmod'] ); ?></lastmod><?php
}
if ( ! empty( $entry['changefreq'] ) ) {
?>
<changefreq><?php aioseo()->sitemap->output->escapeAndEcho( $entry['changefreq'] ); ?></changefreq><?php
}
if ( isset( $entry['priority'] ) ) {
?>
<priority><?php aioseo()->sitemap->output->escapeAndEcho( $entry['priority'] ); ?></priority><?php
}
if ( ! empty( $entry['languages'] ) ) {
foreach ( $entry['languages'] as $subentry ) {
if ( empty( $subentry['language'] ) || empty( $subentry['location'] ) ) {
continue;
}
?>
<xhtml:link rel="alternate" hreflang="<?php echo esc_attr( $subentry['language'] ); ?>" href="<?php echo esc_url( $subentry['location'] ); ?>" /><?php
}
}
if ( ! aioseo()->sitemap->helpers->excludeImages() && ! empty( $entry['images'] ) ) {
foreach ( $entry['images'] as $image ) {
$image = (array) $image;
?>
<image:image>
<image:loc><?php aioseo()->sitemap->output->escapeAndEcho( $image['image:loc'] ); ?></image:loc>
</image:image><?php
}
}
?>
</url>
<?php } ?>
</urlset>

View File

@@ -0,0 +1,32 @@
<?php
/**
* XML template for our root index page.
*
* @since 4.0.0
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable
?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php foreach ( $entries as $entry ) {
if ( empty( $entry['loc'] ) ) {
continue;
}
?>
<sitemap>
<loc><?php aioseo()->sitemap->output->escapeAndEcho( $entry['loc'] ); ?></loc><?php
if ( ! empty( $entry['lastmod'] ) ) {
?>
<lastmod><?php aioseo()->sitemap->output->escapeAndEcho( $entry['lastmod'] ); ?></lastmod><?php
}
?>
</sitemap>
<?php } ?>
</sitemapindex>

View File

@@ -0,0 +1,57 @@
<?php
/**
* XML template for the RSS Sitemap.
*
* @since 4.0.0
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable
?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel><?php
// Yandex doesn't support some tags so we need to check the user agent.
if ( ! aioseo()->helpers->isYandexUserAgent() ) {
?>
<title><?php aioseo()->sitemap->output->escapeAndEcho( $title, false ); ?></title>
<link><?php aioseo()->sitemap->output->escapeAndEcho( $link ); ?></link>
<?php if ( $description ) {
?><description><?php aioseo()->sitemap->output->escapeAndEcho( $description ); ?></description>
<?php }
?><?php if ( ! empty( $entries[0]['pubDate'] ) ) {
?><lastBuildDate><?php aioseo()->sitemap->output->escapeAndEcho( $entries[0]['pubDate'] ); ?></lastBuildDate>
<?php }
?><docs>https://validator.w3.org/feed/docs/rss2.html</docs>
<atom:link href="<?php echo aioseo()->sitemap->helpers->getUrl( 'rss' ); ?>" rel="self" type="application/rss+xml" />
<ttl><?php aioseo()->sitemap->output->escapeAndEcho( $ttl ); ?></ttl>
<?php }
foreach ( $entries as $entry ) {
if ( empty( $entry['guid'] ) ) {
continue;
}?>
<item>
<guid><?php aioseo()->sitemap->output->escapeAndEcho( $entry['guid'] ); ?></guid>
<link><?php aioseo()->sitemap->output->escapeAndEcho( $entry['guid'] ); ?></link><?php
if ( ! empty( $entry['title'] ) ) {
?>
<title><?php aioseo()->sitemap->output->escapeAndEcho( $entry['title'], false ); ?></title><?php
}
if ( ! empty( $entry['pubDate'] ) ) {
?>
<pubDate><?php aioseo()->sitemap->output->escapeAndEcho( $entry['pubDate'] ); ?></pubDate><?php
}
?>
</item>
<?php } ?>
</channel>
</rss>

View File

@@ -0,0 +1,452 @@
<?php
/**
* XSL stylesheet for the sitemap.
*
* @since 4.0.0
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable
$utmMedium = 'xml-sitemap';
if ( '/sitemap.rss' === $sitemapPath ) {
$utmMedium = 'rss-sitemap';
}
?>
<xsl:stylesheet
version="2.0"
xmlns:html="http://www.w3.org/TR/html40"
xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
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="//channel">RSS</xsl:when>
<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' or $fileType='RSS'"><?php echo $title; ?></xsl:when>
<xsl:otherwise><?php _e( 'Sitemap Index', 'all-in-one-seo-pack' ); ?></xsl:otherwise>
</xsl:choose>
</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php aioseo()->templates->getTemplate( 'sitemap/xsl/styles.php' ); ?>
</head>
<body>
<xsl:variable name="amountOfURLs">
<xsl:choose>
<xsl:when test="$fileType='RSS'">
<xsl:value-of select="count(//channel/item)"></xsl:value-of>
</xsl:when>
<xsl:when test="$fileType='Sitemap'">
<xsl:value-of select="count(sitemap:urlset/sitemap:url)"></xsl:value-of>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="count(sitemap:sitemapindex/sitemap:sitemap)"></xsl:value-of>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="Header">
<xsl:with-param name="title"><?php echo $title; ?></xsl:with-param>
<xsl:with-param name="amountOfURLs" select="$amountOfURLs"/>
<xsl:with-param name="fileType" select="$fileType"/>
</xsl:call-template>
<div class="content">
<div class="container">
<xsl:choose>
<xsl:when test="$amountOfURLs = 0"><xsl:call-template name="emptySitemap"/></xsl:when>
<xsl:when test="$fileType='Sitemap'"><xsl:call-template name="sitemapTable"/></xsl:when>
<xsl:when test="$fileType='RSS'"><xsl:call-template name="sitemapRSS"/></xsl:when>
<xsl:otherwise><xsl:call-template name="siteindexTable"/></xsl:otherwise>
</xsl:choose>
</div>
</div>
</body>
</html>
</xsl:template>
<xsl:template name="siteindexTable">
<?php
$sitemapIndex = aioseo()->sitemap->helpers->filename( 'general' );
$sitemapIndex = $sitemapIndex ? $sitemapIndex : 'sitemap';
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/breadcrumb.php',
[
'items' => [
[ 'title' => __( 'Sitemap Index', 'all-in-one-seo-pack' ), 'url' => $sitemapUrl ],
]
]
);
?>
<div class="table-wrapper">
<table cellpadding="3">
<thead>
<tr>
<th class="left">
<?php _e( 'URL', 'all-in-one-seo-pack' ); ?>
</th>
<th><?php _e( 'URL Count', 'all-in-one-seo-pack' ); ?></th>
<th>
<?php
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/sortable-column.php',
[
'parameters' => $sitemapParams,
'sitemapUrl' => $sitemapUrl,
'column' => 'date',
'title' => __( 'Last Updated', 'all-in-one-seo-pack' )
]
);
?>
</th>
</tr>
</thead>
<tbody>
<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
<xsl:for-each select="sitemap:sitemapindex/sitemap:sitemap">
<?php
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/xsl-sort.php',
[
'parameters' => $sitemapParams,
'node' => 'sitemap:lastmod',
]
);
?>
<tr>
<xsl:if test="position() mod 2 != 0">
<xsl:attribute name="class">stripe</xsl:attribute>
</xsl:if>
<td class="left">
<a>
<xsl:attribute name="href">
<xsl:value-of select="sitemap:loc" />
</xsl:attribute>
<xsl:value-of select="sitemap:loc"/>
</a>
</td>
<td>
<?php if ( ! empty( $xslParams['counts'] ) ) : ?>
<div class="item-count">
<xsl:choose>
<?php foreach ( $xslParams['counts'] as $slug => $count ) : ?>
<xsl:when test="contains(sitemap:loc, '<?php echo $slug; ?>')"><?php echo $count; ?></xsl:when>
<?php endforeach; ?>
<xsl:otherwise><?php echo $linksPerIndex; ?></xsl:otherwise>
</xsl:choose>
</div>
<?php endif; ?>
</td>
<td class="datetime">
<?php
if ( ! empty( $xslParams['datetime'] ) ) {
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/date-time.php',
[
'datetime' => $xslParams['datetime'],
'node' => 'sitemap:loc'
]
);
}
?>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</div>
</xsl:template>
<xsl:template name="sitemapRSS">
<?php
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/breadcrumb.php',
[
'items' => [
[ 'title' => $title, 'url' => $sitemapUrl ],
]
]
);
?>
<div class="table-wrapper">
<table cellpadding="3">
<thead>
<tr>
<th class="left"><?php _e( 'URL', 'all-in-one-seo-pack' ); ?></th>
<th>
<?php
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/sortable-column.php',
[
'parameters' => $sitemapParams,
'sitemapUrl' => $sitemapUrl,
'column' => 'date',
'title' => __( 'Publication Date', 'all-in-one-seo-pack' )
]
);
?>
</th>
</tr>
</thead>
<tbody>
<xsl:for-each select="//channel/item">
<?php
if ( ! empty( $sitemapParams['sitemap-order'] ) ) {
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/xsl-sort.php',
[
'parameters' => $sitemapParams,
'node' => 'pubDate',
]
);
}
?>
<tr>
<xsl:if test="position() mod 2 != 0">
<xsl:attribute name="class">stripe</xsl:attribute>
</xsl:if>
<td class="left">
<a>
<xsl:attribute name="href">
<xsl:value-of select="link" />
</xsl:attribute>
<xsl:value-of select="link"/>
</a>
</td>
<td class="datetime">
<?php
if ( ! empty( $xslParams['datetime'] ) ) {
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/date-time.php',
[
'datetime' => $xslParams['datetime'],
'node' => 'link'
]
);
}
?>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</div>
</xsl:template>
<xsl:template name="sitemapTable">
<?php
$sitemapIndex = aioseo()->sitemap->helpers->filename( 'general' );
$sitemapIndex = $sitemapIndex ? $sitemapIndex : 'sitemap';
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/breadcrumb.php',
[
'items' => [
[ 'title' => __( 'Sitemap Index', 'all-in-one-seo-pack' ), 'url' => home_url( "/$sitemapIndex.xml" ) ],
[ 'title' => $title, 'url' => $sitemapUrl ],
]
]
);
?>
<div class="table-wrapper">
<table cellpadding="3">
<thead>
<tr>
<th class="left">
<?php _e( 'URL', 'all-in-one-seo-pack' ); ?>
</th>
<?php if ( ! aioseo()->sitemap->helpers->excludeImages() ) : ?>
<th>
<?php
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/sortable-column.php',
[
'parameters' => $sitemapParams,
'sitemapUrl' => $sitemapUrl,
'column' => 'image',
'title' => __( 'Images', 'all-in-one-seo-pack' )
]
);
?>
</th>
<?php endif; ?>
<th>
<?php
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/sortable-column.php',
[
'parameters' => $sitemapParams,
'sitemapUrl' => $sitemapUrl,
'column' => 'changefreq',
'title' => __( 'Change Frequency', 'all-in-one-seo-pack' )
]
);
?>
</th>
<th>
<?php
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/sortable-column.php',
[
'parameters' => $sitemapParams,
'sitemapUrl' => $sitemapUrl,
'column' => 'priority',
'title' => __( 'Priority', 'all-in-one-seo-pack' )
]
);
?>
</th>
<th>
<?php
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/sortable-column.php',
[
'parameters' => $sitemapParams,
'sitemapUrl' => $sitemapUrl,
'column' => 'date',
'title' => __( 'Last Updated', 'all-in-one-seo-pack' )
]
);
?>
</th>
</tr>
</thead>
<tbody>
<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
<xsl:for-each select="sitemap:urlset/sitemap:url">
<?php
if ( ! empty( $sitemapParams['sitemap-order'] ) ) {
switch ( $sitemapParams['sitemap-order'] ) {
case 'image':
$node = 'count(image:image)';
break;
case 'date':
$node = 'sitemap:lastmod';
break;
default:
$node = 'sitemap:' . $sitemapParams['sitemap-order'];
break;
}
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/xsl-sort.php',
[
'parameters' => $sitemapParams,
'node' => $node,
]
);
}
?>
<tr>
<xsl:if test="position() mod 2 != 0">
<xsl:attribute name="class">stripe</xsl:attribute>
</xsl:if>
<td class="left">
<xsl:variable name="itemURL">
<xsl:value-of select="sitemap:loc"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="count(./*[@rel='alternate']) > 0">
<xsl:for-each select="./*[@rel='alternate']">
<xsl:if test="position() = last()">
<a href="{current()/@href}" class="localized">
<xsl:value-of select="@href"/>
</a> &#160;&#8594; <xsl:value-of select="@hreflang"/>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<a href="{$itemURL}">
<xsl:value-of select="sitemap:loc"/>
</a>
</xsl:otherwise>
</xsl:choose>
<xsl:for-each select="./*[@rel='alternate']">
<br />
<xsl:if test="position() != last()">
<a href="{current()/@href}" class="localized">
<xsl:value-of select="@href"/>
</a> &#160;&#8594; <xsl:value-of select="@hreflang"/>
</xsl:if>
</xsl:for-each>
</td>
<?php if ( ! aioseo()->sitemap->helpers->excludeImages() ) : ?>
<td>
<div class="item-count">
<xsl:value-of select="count(image:image)"/>
</div>
</td>
<?php endif; ?>
<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:if test="string(number(sitemap:priority))!='NaN'">
<xsl:call-template name="formatPriority">
<xsl:with-param name="priority" select="sitemap:priority"/>
</xsl:call-template>
</xsl:if>
</td>
<td class="datetime">
<?php
if ( ! empty( $xslParams['datetime'] ) ) {
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/date-time.php',
[
'datetime' => $xslParams['datetime'],
'node' => 'sitemap:loc'
]
);
}
?>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</div>
<?php
if ( ! empty( $xslParams['pagination'] ) ) {
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/pagination.php',
[
'sitemapUrl' => $sitemapUrl,
'currentPage' => $currentPage,
'linksPerIndex' => $linksPerIndex,
'total' => $xslParams['pagination']['total'],
'showing' => $xslParams['pagination']['showing']
]
);
}
?>
</xsl:template>
<?php aioseo()->templates->getTemplate( 'sitemap/xsl/templates/header.php', [ 'utmMedium' => $utmMedium ] ); ?>
<?php aioseo()->templates->getTemplate( 'sitemap/xsl/templates/format-priority.php' ); ?>
<?php
aioseo()->templates->getTemplate( 'sitemap/xsl/templates/empty-sitemap.php', [
'utmMedium' => $utmMedium,
'items' => [
[ 'title' => __( 'Sitemap Index', 'all-in-one-seo-pack' ), 'url' => $sitemapUrl ]
]
] );
?>
</xsl:stylesheet>

View File

@@ -0,0 +1,42 @@
<?php
/**
* XSL Breadcrumb partial for the sitemap.
*
* @since 4.1.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
if ( empty( $data['items'] ) ) {
return;
}
$sitemapIndex = aioseo()->sitemap->helpers->filename( 'general' );
$sitemapIndex = $sitemapIndex ? $sitemapIndex : 'sitemap';
?>
<div class="breadcrumb">
<svg class="back" width="6" height="9" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.274 7.56L2.22 4.5l3.054-3.06-.94-.94-4 4 4 4 .94-.94z" fill="#141B38"/></svg>
<a href="<?php echo esc_attr( home_url() ); ?>"><span><?php esc_attr_e( 'Home', 'all-in-one-seo-pack' ); ?></span></a>
<?php
foreach ( $data['items'] as $key => $item ) {
if ( empty( $item ) ) {
continue;
}
?>
<svg width="6" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M.727 7.06L3.78 4 .727.94l.94-.94 4 4-4 4-.94-.94z" fill="#141B38"/></svg>
<?php if ( count( $data['items'] ) === $key + 1 ) : ?>
<span><?php echo esc_html( $item['title'] ); ?></span>
<?php else : ?>
<a href="<?php echo esc_attr( $item['url'] ) ?>"><span><?php echo esc_html( $item['title'] ); ?></span></a>
<?php endif; ?>
<?php
}
?>
</div>

View File

@@ -0,0 +1,32 @@
<?php
/**
* XSL Breadcrumb partial for the sitemap.
*
* @since 4.1.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
if ( empty( $data['datetime'] ) || empty( $data['node'] ) ) {
return;
}
?>
<div class="date">
<xsl:choose>
<?php foreach ( $data['datetime'] as $slug => $datetime ) : ?>
<xsl:when test="<?php echo esc_attr( $data['node'] ); ?> = '<?php echo esc_attr( $slug ); ?>'"><?php echo esc_html( $datetime['date'] ); ?></xsl:when>
<?php endforeach; ?>
</xsl:choose>
</div>
<div class="time">
<xsl:choose>
<?php foreach ( $data['datetime'] as $slug => $datetime ) : ?>
<xsl:when test="<?php echo esc_attr( $data['node'] ); ?> = '<?php echo esc_attr( $slug ); ?>'"><?php echo esc_html( $datetime['time'] ); ?></xsl:when>
<?php endforeach; ?>
</xsl:choose>
</div>

View File

@@ -0,0 +1,57 @@
<?php
/**
* XSL Pagination partial for the sitemap.
*
* @since 4.1.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Don't allow pagination for now.
return;
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
// Check if requires pagination.
if ( $data['showing'] === $data['total'] ) {
return;
}
$currentPage = (int) $data['currentPage'];
$totalLinks = (int) $data['total'];
$showing = (int) $data['showing'];
$linksPerIndex = (int) $data['linksPerIndex'];
$totalPages = ceil( $totalLinks / $linksPerIndex );
$start = ( ( $currentPage - 1 ) * $linksPerIndex ) + 1;
$end = ( ( $currentPage - 1 ) * $linksPerIndex ) + $showing;
$hasNextPage = $totalPages > $currentPage;
$hasPrevPage = $currentPage > 1;
$nextPageUri = $hasNextPage ? preg_replace( '/sitemap([0-9]*)\.xml/', 'sitemap' . ( $currentPage + 1 ) . '.xml', (string) $data['sitemapUrl'] ) : '#';
$prevPageUri = $hasPrevPage ? preg_replace( '/sitemap([0-9]*)\.xml/', 'sitemap' . ( $currentPage - 1 ) . '.xml', (string) $data['sitemapUrl'] ) : '#';
?>
<div class="pagination">
<div class="label">
<?php
echo esc_html(
sprintf(
// Translators: 1 - The "start-end" pagination results, 2 - Total items.
__( 'Showing %1$s of %2$s', 'all-in-one-seo-pack' ),
"$start-$end",
$totalLinks
)
);
?>
</div>
<a href="<?php echo esc_attr( $prevPageUri ); ?>" class="<?php echo $hasPrevPage ? '' : 'disabled'; ?>">
<svg width="7" height="10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.842 8.825L3.025 5l3.817-3.825L5.667 0l-5 5 5 5 1.175-1.175z" fill="#141B38"/></svg>
</a>
<a href="<?php echo esc_attr( $nextPageUri ); ?>" class="<?php echo $hasNextPage ? '' : 'disabled'; ?>">
<svg width="7" height="10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M.158 8.825L3.975 5 .158 1.175 1.333 0l5 5-5 5L.158 8.825z" fill="#141B38"/></svg>
</a>
</div>

View File

@@ -0,0 +1,35 @@
<?php
/**
* XSL sortableColumn partial for the sitemap.
*
* @since 4.1.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
// Just print out the title for now.
echo esc_html( $data['title'] );
/*$orderBy = 'ascending';
if ( ! empty( $data['parameters']['sitemap-orderby'] ) ) {
$orderBy = $data['parameters']['sitemap-orderby'];
}
$isOrdering = false;
if ( ! empty( $data['parameters']['sitemap-order'] ) ) {
$isOrdering = $data['column'] === $data['parameters']['sitemap-order'];
}
$link = add_query_arg( [
'sitemap-order' => $data['column'],
'sitemap-orderby' => 'ascending' === $orderBy ? 'descending' : 'ascending'
], $data['sitemapUrl'] );
?>
<a href="<?php echo esc_url( $link ); ?>" class="sortable <?php echo esc_attr( ( $isOrdering ? 'active' : '' ) . ' ' . $orderBy ); ?>">
<?php echo esc_html( $data['title'] ); ?>
</a>*/

View File

@@ -0,0 +1,28 @@
<?php
/**
* XSL XSLSort partial for the sitemap.
*
* @since 4.1.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
if ( empty( $data['node'] ) ) {
return;
}
$orderBy = '';
if ( ! empty( $data['parameters']['sitemap-orderby'] ) && in_array( $data['parameters']['sitemap-orderby'], [ 'ascending', 'descending' ], true ) ) {
$orderBy = $data['parameters']['sitemap-orderby'];
}
if ( empty( $orderBy ) ) {
return;
}
?>
<xsl:sort select="<?php echo esc_attr( $data['node'] ); ?>" order="<?php echo esc_attr( $orderBy ) ?>"/>

View File

@@ -0,0 +1,117 @@
<?php
/**
* Styles for the sitemap.
*
* @since 4.1.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable
?>
<style type="text/css">
body {
margin: 0;
font-family: Helvetica, Arial, sans-serif;
font-size: 68.5%;
}
#content-head {
background-color: #141B38;
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;
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:not(.localized) {
display: block;
}
table td a img {
max-height: 30px;
margin: 6px 3px;
}
.empty-sitemap {
margin: 20px 40px;
width: 75%;
}
.empty-sitemap__title {
font-size: 18px;
line-height: 125%;
margin: 12px 0;
}
.empty-sitemap svg {
width: 140px;
height: 140px;
}
.empty-sitemap__buttons {
margin-bottom: 30px;
}
.empty-sitemap__buttons .button {
margin-right: 5px;
}
.breadcrumb {
margin: 20px 40px;
width: 75%;
display: flex;
align-items: center;
font-size: 12px;
font-weight: 600;
}
.breadcrumb a {
color: #141B38;
text-decoration: none;
}
.breadcrumb svg {
margin: 0 10px;
}
@media (max-width: 1023px) {
.breadcrumb svg:not(.back),
.breadcrumb a:not(:last-of-type),
.breadcrumb span {
display: none;
}
.breadcrumb a:last-of-type::before {
content: '<?php _e( 'Back', 'all-in-one-seo-pack' ); ?>'
}
}
@media (min-width: 1024px) {
.breadcrumb {
font-size: 14px;
}
.breadcrumb a {
font-weight: 400;
}
.breadcrumb svg.back {
display: none;
}
}
</style>

View File

@@ -0,0 +1,74 @@
<?php
/**
* XSL emptySitemap template for the sitemap.
*
* @since 4.1.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$canManageSitemap = is_user_logged_in() && aioseo()->access->hasCapability( 'aioseo_sitemap_settings' );
$adminUrl = admin_url( 'admin.php?page=aioseo-sitemaps' );
// phpcs:disable
if ( 'xml-sitemap' !== $data['utmMedium'] ) {
$adminUrl .= '#/' . str_replace( 'aioseo-', '', $data['utmMedium'] );
}
?>
<xsl:template name="emptySitemap">
<?php
if ( ! empty( $data['items'] ) ) {
aioseo()->templates->getTemplate(
'sitemap/xsl/partials/breadcrumb.php',
[ 'items' => $data['items'] ]
);
}
?>
<div class="empty-sitemap">
<h2 class="empty-sitemap__title">
<?php _e( 'Whoops!', 'all-in-one-seo-pack' ); ?>
<br />
<?php _e( 'There are no posts here', 'all-in-one-seo-pack' ); ?>
</h2>
<div class="empty-sitemap__buttons">
<a href="<?php echo esc_attr( home_url() ); ?>" class="button"><?php _e( 'Back to Homepage', 'all-in-one-seo-pack' ); ?></a>
<?php if ( $canManageSitemap ) : ?>
<a href="<?php echo esc_attr( esc_url( $adminUrl ) ); ?>" class="button"><?php _e( 'Configure Sitemap', 'all-in-one-seo-pack' ); ?></a>
<?php endif; ?>
</div>
<?php if ( $canManageSitemap ) : ?>
<div class="aioseo-alert yellow">
<?php
echo sprintf(
// Translators: 1 - Opening HTML link tag, 2 - Closing HTML link tag.
__( 'Didn\'t expect to see this? Make sure your sitemap is enabled and your content is set to be indexed. %1$sLearn More →%2$s', 'all-in-one-seo-pack' ),
'<a target="_blank" href="' . aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'docs/how-to-fix-a-404-error-when-viewing-your-sitemap/', $data['utmMedium'], 'learn-more' ) . '">',
'</a>'
);
?>
</div>
<?php endif; ?>
</div>
<style>
.hand-magnifier{
animation: hand-magnifier .8s infinite ease-in-out;
transform-origin: center 90%;
transform-box: fill-box;
}
@keyframes hand-magnifier {
0% {
transform: rotate(0deg);
}
50% {
transform: rotate(-12deg);
}
100% {
transform: rotate(0deg);
}
}
</style>
</xsl:template>

View File

@@ -0,0 +1,40 @@
<?php
/**
* XSL formatPriority template for the sitemap.
*
* @since 4.1.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable
?>
<xsl:template name="formatPriority">
<xsl:param name="priority"/>
<xsl:variable name="priorityLevel">
<xsl:choose>
<xsl:when test="$priority &lt;= 0.5">low</xsl:when>
<xsl:when test="$priority &gt;= 0.6 and $priority &lt;= 0.8">medium</xsl:when>
<xsl:when test="$priority &gt;= 0.9">high</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="priorityLabel">
<xsl:choose>
<xsl:when test="$priorityLevel = 'low'"><?php _e( 'Low', 'all-in-one-seo-pack' ); ?></xsl:when>
<xsl:when test="$priorityLevel = 'medium'"><?php _e( 'Medium', 'all-in-one-seo-pack' ); ?></xsl:when>
<xsl:when test="$priorityLevel = 'high'"><?php _e( 'High', 'all-in-one-seo-pack' ); ?></xsl:when>
</xsl:choose>
</xsl:variable>
<div>
<xsl:attribute name="class">
<xsl:value-of select="concat('priority priority--', $priorityLevel)" />
</xsl:attribute>
<xsl:value-of select="$priorityLabel" />
</div>
</xsl:template>

View File

@@ -0,0 +1,81 @@
<?php
/**
* XSL Header template for the sitemap.
*
* @since 4.1.5
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// phpcs:disable
?>
<xsl:template name="Header">
<xsl:param name="title"/>
<xsl:param name="amountOfURLs"/>
<xsl:param name="fileType"/>
<div id="content-head">
<h1><xsl:value-of select="$title"/></h1>
<xsl:choose>
<xsl:when test="$fileType='RSS'">
<p><?php echo __( 'Generated by', 'all-in-one-seo-pack' ); ?> <a href="<?php echo aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL, $data['utmMedium'] ); ?>" target="_blank" rel="noreferrer noopener"><?php echo AIOSEO_PLUGIN_NAME; ?></a>, <?php echo __( 'this is an RSS Sitemap, meant to be consumed by search engines like Google or Bing.', 'all-in-one-seo-pack' ) ?></p>
<p>
<?php
// Translators: 1 - Opening HTML link tag, 2 - Closing HTML link tag.
printf( __( 'You can find more information about RSS Sitemaps at %1$ssitemaps.org%2$s.', 'all-in-one-seo-pack' ), '<a href="https://www.sitemaps.org/" target="_blank" rel="noreferrer noopener">', '</a>');
?>
</p>
</xsl:when>
<xsl:otherwise>
<p><?php echo __( 'Generated by', 'all-in-one-seo-pack' ); ?> <a href="<?php echo aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL, $data['utmMedium'] ); ?>" target="_blank" rel="noreferrer noopener"><?php echo AIOSEO_PLUGIN_NAME; ?></a>, <?php echo __( 'this is an XML Sitemap, meant to be consumed by search engines like Google or Bing.', 'all-in-one-seo-pack' ) ?></p>
<p>
<?php
// Translators: 1 - Opening HTML link tag, 2 - Closing HTML link tag.
printf( __( 'You can find more information about XML Sitemaps at %1$ssitemaps.org%2$s.', 'all-in-one-seo-pack' ), '<a href="https://www.sitemaps.org/" target="_blank" rel="noreferrer noopener">', '</a>');
?>
</p>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$amountOfURLs &gt; 0">
<p>
<xsl:choose>
<xsl:when test="$fileType='Sitemap' or $fileType='RSS'">
<?php echo __( 'This sitemap contains', 'all-in-one-seo-pack' ); ?>
<xsl:value-of select="$amountOfURLs"/>
<xsl:choose>
<xsl:when test="$amountOfURLs = 1">
<?php _e( 'URL', 'all-in-one-seo-pack' ); ?>
</xsl:when>
<xsl:otherwise>
<?php _e( 'URLs', 'all-in-one-seo-pack' ); ?>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<?php echo __( 'This sitemap index contains', 'all-in-one-seo-pack' ); ?>
<xsl:value-of select="$amountOfURLs"/>
<xsl:choose>
<xsl:when test="$amountOfURLs = 1">
<?php _e( 'sitemap', 'all-in-one-seo-pack' ); ?>
</xsl:when>
<xsl:otherwise>
<?php _e( 'sitemaps', 'all-in-one-seo-pack' ); ?>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
<?php
echo sprintf(
// Translators: 1 - The generated date, 2 - The generated time.
__( 'and was generated on %1$s at %2$s', 'all-in-one-seo-pack' ),
date_i18n( get_option( 'date_format' ) ),
date_i18n( get_option( 'time_format' ) )
);
?>
</p>
</xsl:if>
</div>
</xsl:template>