Google Sitemap Support

See also
by BarkerJr

This script will generate output compatible with Google Sitemap. It can then be submitted to the service.

Copy and paste the below into a new file and name it with the ".php" extension.

You may need to change the path to the wikka.config.php file on the second line, depending on where it's located in your webspace relative to where you place the sitemap file.


if (!mysql_pconnect($wakkaConfig['mysql_host'], $wakkaConfig['mysql_user'], $wakkaConfig['mysql_password']))
  header('HTTP/1.1 503 Service Unavailable');

header('Content-Type: text/xml; charset=iso-8859-1');


echo '<?xml version="1.0" encoding="iso-8859-1"?>
<urlset xmlns="">
$pages = mysql_query('SELECT SQL_NO_CACHE tag, time FROM ' . $wakkaConfig['table_prefix'] . 'pages LEFT JOIN ' . $wakkaConfig['table_prefix'] . "acls ON page_tag = tag WHERE latest = 'Y' AND (read_acl = '*' OR read_acl IS NULL)");
while ($row = mysql_fetch_assoc($pages))
  echo " <url>\n";
  echo '  <loc>' . $wakkaConfig['base_url'] . $row['tag'] . "</loc>\n";
  /* PHP4 doesn't support ISO dates, so we get to play games here... */
  $date = date('Y-m-d\TH:i:sO', strtotime($row['time']));
  echo '  <lastmod>' . substr($date, 0, -2) . ':' . substr($date, -2) . "</lastmod>\n";
  echo " </url>\n";
echo '</urlset>';

If you add these two lines, the sitemap will priorize Category-Pages...
see example on (added by JacobLahr)
if (substr($row['tag'],0,8)=="Category")   echo "<priority>1.0</priority>\n";
else echo "<priority>0.5</priority>\n";

As noted by StewartPlatt...
If you use the ModRewrite code inside .htaccess, you will need to create an exception for this (and probably, also, your verifier) files. Such code to add to your .htaccess would look like:

<Files sitemap.xml>
  RewriteEngine off

<Files google09f4d14e09f8db1a.html>
  RewriteEngine off

Valid XHTML :: Valid CSS: :: Powered by WikkaWiki