Document Sample
documentation Powered By Docstoc
					 Google XML Sitemaps Generator for WordPress


 This generator will create a compliant sitemap of your
WordPress blog.
 Currently homepage, posts, static pages, categories, archives and author
pages are supported.

 The priority of a post depends on its comments. You can choose the way
the priority
 is calculated in the options screen.

 Feel free to visit my website under or contact me
 himself [at] arnebrachhold [dot] de

 Have fun!


 1. Upload the full directory into your wp-content/plugins directory
 2. Make your blog directory writeable OR create two files called
    and sitemap.xml.gz and make them writeable via CHMOD In most cases,
your blog directory is already writeable.
 2. Activate it in the Plugin options
 3. Edit or publish a post or click on Rebuild Sitemap on the Sitemap
Administration Interface

 Additional contributors:

 Inspiration            Michael Nguyen
 SQL Improvements       Rodney Shupe
 Japanse Lang. File     Hirosama  
 Spanish lang. File     Omi       
 Italian lang. File     Stefano Aglietti
 Trad.Chinese File      Kirin Lin 
 Simpl.Chinese File     june6     
 Swedish Lang. File     Tobias Bergius
 Czech Lang. File       Peter Kahoun
 Finnish Lang. File     Olli Jarva
 Belorussian Lang. File Marcis Gasuns
 Bulgarian Lang. File   Alexander Dichev
 Thanks to all contributors and bug reporters! There were much more
people involved
 in testing this plugin and reporting bugs, either by email or in the
WordPress forums.

 Unfortunately I can't maintain a whole list here, but thanks again to
everybody not listed here!

 Release History:

 2005-06-05     1.0     First release
 2005-06-05     1.1     Added archive support
 2005-06-05     1.2     Added category support
 2005-06-05     2.0a    Beta: Real Plugin! Static file generation, Admin
 2005-06-05     2.0     Various fixes, more help, more comments,
configurable filename
 2005-06-07     2.01    Fixed 2 Bugs: 147 is now _e(strval($i)); instead
of _e($i); 344 uses a full < ?php instead of < ?
                        Thanks to Christian Aust for reporting this :)
 2005-06-07     2.1     Correct usage of last modification date for cats
and archives (thx to Rodney Shupe (
                        Added support for .gz generation
                        Fixed bug which ignored different post/page
                        Should support now different wordpress/admin
 2005-06-07     2.11    Fixed bug with hardcoded table table names
instead of the $wpd vars
 2005-06-07     2.12    Changed SQL Statement of the categories to get it
work on MySQL 3
 2005-06-08     2.2     Added language file support:
                        - Japanese Language Files and code modifications
by hiromasa (
                        - German Language File by Arne Brachhold
 2005-06-14     2.5     Added support for external pages
                        Added support for Google Ping
                        Added the minimum Post Priority option
                        Added Spanish Language File by César Gómez Martín
                        Added Italian Language File by Stefano Aglietti
                        Added Traditional Chine Language File by Kirin
Lin (
 2005-07-03     2.6     Added support to store the files at a custom
                        Changed the home URL to have a slash at the end
                        Required admin-functions.php so the script will
work with external calls, wp-mail for example
                        Added support for other plugins to add content to
the sitemap via add_filter()
 2005-07-20      2.7    Fixed wrong date format in additional pages
                        Added Simplified Chinese Language Files by june6
                        Added Swedish Language File by Tobias Bergius
 2006-01-07      3.0b   Added different priority calculation modes and
introduced an API to create custom ones
                        Added support to use the Popularity Contest
plugin by Alex King to calculate post priority
                        Added Button to restore default configuration
                        Added several links to homepage and support
                        Added option to exclude password protected posts
                        Added function to start sitemap creation via GET
and a secret key
                        Posts and pages marked for publish with a date in
the future won't be included
                        Improved compatiblity with other plugins
                        Improved speed and optimized settings handling
                        Improved user-interface
                        Recoded plugin architecture which is now fully
 2006-01-07      3.0b1  Changed the way for hook support to be PHP5 and
PHP4 compatible
                        Readded support for tools like w.Bloggar
                        Fixed "doubled-content" bug with WP2
                        Added xmlns to enable validation
 2006-03-01      3.0b3  More performance
                        More caching
                        Better support for Popularity Contest and WP 2.x
 2006-11-16      3.0b4  Fixed bug with option SELECTS
                        Decreased memory usage which should solve timeout
and memory problems
                        Updated namespace to support YAHOO and MSN
 2007-01-19      3.0b5  Javascripted page editor
                        WP 2 Design
                        YAHOO notification
                        New status report, removed ugly logfiles
                        Better Popularity Contest Support
                        Fixed double backslashes on windows systems
                        Added option to specify time limit and memory
                        Added option to define a XSLT stylesheet and
added a default one
                        Fixed bug with sub-pages. Thanks to:
                        - Mike Baptiste (,
                        - Peter Claus Lamprecht (
                        - Glenn Nicholas (
                        Improved file handling, thanks to VJTD3
                        WP 2.1 improvements
 2007-01-23      3.0b6  Use memory_get_peak_usage instead of
memory_get_usage if available
                        Removed the usage of REQUEST_URI since it not
correct in all environments
                        Fixed that sitemap.xml.gz was not compressed
                        Added compat function "stripos" for PHP4 (Thanks
to Joseph Abboud!)
                        Streamlined some code
 2007-05-17      3.0b7  Added option to include the author pages like
                        Small enhancements, removed stripos dependency
and the added compat function
                        Added check to not build the sitemap if importing
                        Fixed missing domain parameter for translator
                        Fixed WP 2.1 / Pre 2.1 post / pages database
                        Fixed wrong XSLT location (Thanks froosh)
                        Added notification
                        Removed unused javascript
 2007-07-22      3.0b8  Changed category SQL to prevent unused cats from
beeing included
                        Plugin will be loaded on "init" instead of
direclty after the file has been loaded.
                        Added support for robots.txt modification
                        Switched YAHOO ping API from YAHOO Web Services
to the "normal" ping service which doesn't require an app id
                        Search engines will only be pinged if the sitemap
file has changed
 2007-09-02      3.0b9  Added tag support for WordPress 2.3
                        Now using post_date_gmt instead of post_date
                        Fixed archive bug with static pages (Thanks to
Peter Claus Lamprecht)
                        Fixed some missing translation domains, thanks to
Kirin Lin!
                        Added Czech translation files for 2.7.1, thanks
to Peter Kahoun (
 2007-09-04      3.0b10 Added category support for WordPress 2.3
                        Fixed bug with empty URLs in sitemap
                        Repaired GET building
                        Added more info on debug mode
 2007-09-23      3.0b11 Changed mysql queries to unbuffered queries
                        Uses MUCH less memory
                        Fixed really stupid bug with search engine pings
                        Option to set how many posts will be included
 2007-09-24      3.0    Yeah, 3.0 Final after one and a half year ;)
                        Removed useless functions
 2007-11-03      3.0.1  Using the Snoopy HTTP client for ping requests
instead of wp_remote_fopen
                        Fixed undefined translation strings
                        Added "safemode" for SQL which doesn't use
unbuffered results (old style)
                        Added option to run the building process in
background using wp-cron
                        Removed unnecessary function_exists, Thanks to
                        Added links to test the ping if it failed.
 2007-11-25     3.0.2   Fixed bug which caused that some settings were
not saved correctly
                         Added option to exclude pages or post by ID
                         Restored YAHOO ping service with API key since
the other one is to unreliable. (see 3.0b8)
 2007-11-28 Fixed wrong XML Schema Location (Thanks to
Emanuele Tessore)
                         Added Russian Language files by Sergey
 2007-12-30      3.0.3   Added Live Search Ping
                         Removed some hooks which rebuilt the sitemap with
every comment
 2008-03-30 Added compatibility CSS for WP 2.5
 2008-04-28 Improved WP 2.5 handling
 2008-04-29 Fixed author pages
                         Enhanced background building and increased delay
to 15 seconds
                         Background building is enabled by default
 2008-04-28      3.1b1   Reorganized files in builder, loader and UI
                         Added 2 step loader so only code that's needed
will be loaded
                         Improved WP 2.5 handling
                         Secured all admin actions with nonces
 2008-05-18      3.1b2   Fixed critical bug with the build in background
                         Added notification if a build is scheduled
 2008-05-19      3.1b3   Cleaned up plugin directory and moved asset files
to subfolders
                         Fixed background building bug in WP 2.1
                         Removed auto-update plugin link for WP < 2.5
 2008-05-22      3.1     Marked as 3.1 stable, updated documentation
 2008-05-27 Extracted UI JS to external file
                         Enabled the option to include following pages of
multi-page posts
                         Script tries to raise memory and time limit if
 2008-12-21      3.1.1   Fixed redirect issue if wp-admin is rewritten via
mod_rewrite, thanks to macjoost
                         Fixed wrong path to assets, thanks PozHonks
                         Fixed wrong plugin URL if wp-content was renamed
/ redirected, thanks to wnorris
                         Updated WP User Interface for 2.7
                         Various other small things
 2008-12-26      3.1.2   Changed the way the stylesheet is saved (default
/ custom stylesheet)
                         Sitemap is now build when page is published
                         Removed support for static robots.txt files, this
is now handled via WordPress
                         Added compat. exceptions for WP 2.0 and WP 2.1
 2009-06-07      3.1.3   Changed MSN Live Search to Bing
                        Exclude categories also now exludes the category
itself and not only the posts
                        Pings now use the new WordPress HTTP API instead
of Snoopy
                        Fixed bug that in localized WP installations
priorities could not be saved.
                        The sitemap cron job is now cleared after a
manual rebuild or after changing the config
                        Adjusted style of admin area for WP 2.8 and
refreshed icons
                        Disabled the "Exclude categories" feature for WP
2.5.1, since it doesn't have the required functions yet
 2009-06-22     3.1.4   Fixed bug which broke all pings in WP < 2.7
                        Added more output in debug mode if pings fail
                        Moved global post definitions for other plugins
                        Added small icon for ozh admin menu
                        Added more help links in UI
 2009-08-24     3.1.5   Added option to completely disable the last
modification time
                        Fixed bug regarding the use of the HTTPS url for
the XSL stylesheet if the sitemap was build via the admin panel
                        Improved handling of homepage if a single page
was set for it
                        Fixed mktime warning which appeared sometimes
                        Fixed bug which caused inf. reloads after
rebuilding the sitemap via the admin panel
                        Improved handling of missing sitemaps files if WP
was moved to another location
 2009-08-31     3.1.6   Fixed PHP error "Only variables can be passed by
                        Fixed wrong URLS of multi-page posts (Thanks
 2009-10-21     3.1.7   Added support for custom taxonomies (Thanks to
 2009-11-07     3.1.8   Improved custom taxonomy handling and fixed wrong
last modification date
                        Changed readme and backlinks
                        Fixed fatal error in WP < 2.3
                        Fixed Update Notice in WP 2.8+
                        Added warning if blog privacy is activated
                        Fixed custom URLs priorities were shown as 0
instead of 1
 2009-11-13     3.1.9   Fixed MySQL Error if author pages were included
 2009-11-23     3.2     Added function to show the actual results of a
ping instead of only linking to the url
                        Added new hook (sm_rebuild) for third party
plugins to start building the sitemap
                        Fixed bug which showed the wrong URL for the
latest Google ping result
                        Added some missing phpdoc documentation
                        Removed hardcoded php name for sitemap file for
admin urls
                        Uses KSES for showing ping test results
                        Ping test fixed for WP < 2.3
 2009-12-16     3.2.1   Notes and update messages could interfere with
the redirect after manual build
                        Help Links in the WP context help were not shown
anymore since last update
                        IE 7 sometimes displayed a cached admin page
                        Removed invalid link to config page from the
plugin description (This resulted in a "Not enough permission error")
                        Improved performance of getting the current
plugin version with caching
                        Updated Spanish language files
 2009-12-19     3.2.2   Fixed PHP4 problems

 Maybe Todo:

 - Your wishes :)


 Copyright 2005 - 2009 ARNE BRACHHOLD (email : himself - arnebrachhold -

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307

 Developer Documentation


 Adding other pages to the sitemap via other plugins

  This plugin uses the action system of WordPress to allow other plugins
  to add urls to the sitemap. Simply add your function with add_action to
  the list and the plugin will execute yours every time the sitemap is
  Use the static method "GetInstance" to get the generator and AddUrl
  to add your content.


  function your_pages() {
      $generatorObject = &GoogleSitemapGenerator::GetInstance(); //Please
note the "&" sign for PHP4!
      if($generatorObject!=null) $generatorObject-

  - The URL to the page
  - The last modified data, as a UNIX timestamp (optional)
  - The Change Frequency (daily, hourly, weekly and so on) (optional)
  - The priority 0.0 to 1.0 (optional)

 Rebuilding the sitemap on request

  If you want to rebuild the sitemap because dynamic content from your
plugin has changed,
  please use the "sm_rebuild" hook which is available since 3.1.9.
  All other methods, like calling the Build method directly are highly
unrecommended and might
  not work anymore with the next version of the plugin. Using this hook,
the sitemap plugin will
  take care of everything like loading the required classes and so on.



  The sitemap might not be rebuild immediately, since newer versions use
a background WP-Cron
  job by default to prevent that the user has to wait and avoid multiple
rebuilds within a very short time.
  In case the sitemap plugin is not installed, nothing will happen and no
errors will be thrown.


 Adding additional PriorityProviders

  This plugin uses several classes to calculate the post priority.
  You can register your own provider and choose it at the options screen.

  Your class has to extend the GoogleSitemapGeneratorPrioProviderBase
  which has a default constructor and a method called GetPostPriority
  which you can override.
  Look at the GoogleSitemapGeneratorPrioByPopularityContestProvider class
  for an example.

  To register your provider to the sitemap generator, use the following


  Your function could look like this:

  function AddMyProvider($providers) {
      return $providers;

  Note that you have to return the modified list!

Shared By: