Dynamische sitemap.xml für Wordpress erstellen

9. Oktober 2019

Für Wordpress kann man mit PHP ein Skript zur Generierung einer dynamischen sitemap.xml-Datei erstellen.

Zur Generierung einer dynamischen sitemap.xml-Datei ist nur eine PHP-Datei (in diesem Beispiel lautet der Dateiname sitemap.php) und die Anpassung der bereits vorhandenen .htaccess-Datei notwendig.

sitemap.php-Datei erstellen

In der sitemap.php-Datei wird die Ausgabe der dynamischen XML-Sitemap durch ein PHP-Skript erzeugt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
require(dirname( __FILE__).'/wp-blog-header.php');
header('Content-Type: text/xml',true);
?>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
$pages=get_pages();
foreach($pages as $page)
{
echo '<url><loc>'.get_page_link($page).'</loc></url>'."\n";
}
$posts=get_posts();
foreach($posts as $post)
{
echo '<url><loc>'.get_permalink($post).'</loc></url>'."\n";
}
?>
</urlset>

Mit einem Doppelklick kann der gesamte Code markiert werden.

.htaccess-Datei anpassen

In der .htaccess-Datei wird ein Rewrite vom Aufruf von /sitemap.xml auf die sitemap.php-Datei durchgeführt. Man könnte diesen Schritt auch weglassen und die /sitemap.php als XML-Sitemap einreichen, aber mit der .htaccess-Datei ist die Lösung etwas eleganter.

1
2
3
4
5
6
7
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/sitemap.xml$ [NC]
RewriteRule (.*) /sitemap.php [L]
</IfModule>

Mit einem Doppelklick kann der gesamte Code markiert werden.