Posted Post

Posted People, Posted Life.

WordPress mu Sitemap Files: postedpost.php

Check WordPress Mu Google XML Sitemap Solution for what this file is about.

Filename postedpost.php, placed into mu-plugins folder. Please note, if you have any other code or hacks, you can put all code together, for increase performance.

<?php
// postedpost.php, for WordPress Mu Google XML Sitemap Solution
// http://postedpost.com/2008/10/12/wordpress-mu-google-xml-sitemap/
Function postedpost_do_robots() {
    global $current_blog;
    if ('0' != $current_blog->public ) {
        $siteurl = get_settings('siteurl');
        if ( class_exists('GoogleSitemapGeneratorLoader' ) ) {
            echo "Sitemap: " . $siteurl . "/sitemap.xml\n";
            echo "Sitemap: " . $siteurl . "/sitemap.xml.gz\n";
        }
    }
}
add_action('do_robots', 'postedpost_do_robots', 20);

Function postedpost_rewrite_rules_array($rules){
    $newrules = array();
    $newrules['sitemap\.(xml|xml\.gz)$'] = 'index.php?is_page_redirect=1&redirect_method=sitemap&redirect_url=$matches[1]';
    return $newrules+$rules;
}
add_filter('rewrite_rules_array', 'postedpost_rewrite_rules_array');

Function postedpost_parse_query($query){
    global $blog_id;;
    $siteurl = get_settings('siteurl');
    $uri = parse_url($siteurl);
    if(!empty($query->query_vars['is_page_redirect'])){
        $redirect_method = $query->query_vars['redirect_method'];
        if ( $redirect_method == 'sitemap' ) {
            $redirect_url = $siteurl . '/wp-content/blogs.dir/' . $blog_id . '/files/sitemap.' . $redirect_url;
        } else {
            $redirect_url = get_settings('siteurl');
            Header('HTTP/1.1 301 Moved Permanently');
            Header('Location: ' . get_settings('siteurl'));
            exit();
        }
        Header('HTTP/1.1 302 Moved Temporarily');
        Header('Location: ' . $redirect_url);
        exit();
    }
}
add_action('parse_query', 'postedpost_parse_query');

Function postedpost_init() {
    global $wp_rewrite;
    // postedpost_flush_rewrite_rules
    $wp_rewrite->flush_rules();
    add_rewrite_tag('%comment_id%', '(([0-9]{1,})');
}
add_action('init', 'postedpost_init');

?>