I wanted to retire a WordPress-based site, converting everything to static HTML. My first idea was to mirror the site with wget (or any other web downloader), but I decided to search if a better solution was available. Not found, but instead a ready wget recipe was found: How to retire a Wordpress blog (make Wordpress a static site). My addition:
1) Instead of the command line
$ wget -r -E -T 2 -np -R xmlrpc.php,trackback -k http://[BLOG URL]
I used a version with more flags:
$ wget -r -E -T 2 -np -R xmlrpc.php,trackback -k -p --wait=5 -o log http://[BLOG URL]
* -p: get all images, etc. needed to display HTML page.
* --wait=SECONDS: wait SECONDS between retrievals
* -o: log messages to FILE.
2) WordPress creates URLs from the titles of the posts. It leads to non-ASCII symbols in the addresses and (in my case) errors due to multiplce conversion-reconversion to-from unicode. To find such posts (after mirroring):
$ find . -type f | grep %
I had only a few bad posts and fixed the problem manually, visiting the control panel, managing the posts, changing the "Post Slug". Then re-mirrored the pages.Probably a better, automatic solution exists.