WordPress静的化のためSimply Staticを使用

WordPressサイトをWordPressを使用しない静的なサイトに変換するため、Simply Staticを使用しました。Simply StaticはURLに日本語が含まれる場合に非対応でしたが、簡単なスクリプトを使用することで対応できました。

主な作業の流れ

  1. 公開されている画面上から、静的サイトで使えない動的な部分などを取り除きたいと思います。この改修作業をローカル環境で行うため、公開中のサイトをローカル環境へと引っ越します。ちなみに引っ越し方法は、かつて私も翻訳に協力した、公式オンラインマニュアルのページ WordPress Codex日本語版 - WordPress の引越し( http://wpdocs.osdn.jp/WordPress_%E3%81%AE%E5%BC%95%E8%B6%8A%E3%81%97 )に記載されています。
  2. 取り除く改修を行います。私が取り除いたのは、次のようなものでした。サイト内検索、メールフォーム、QRコード表示、シェアボタン、そのほか不要な部分です。
  3. Simply Staticの設定で、リンク先 URLは、デフォルトの「相対 URL を使用する」を選択しつつ、その入力欄は、「/」を「/ローカル環境で使用するディレクトリのパス/」に変更します。
  4. Simply Staticで静的ファイルを生成します。生成されたZipを展開します(当方はCentOSのunzipで展開しました)。
  5. URLのパス中のディレクトリ名に日本語が含まれる場合は、その部分がパーセントエンコーディング(URLエンコード)されているので、スクリプト(下記の日本語対応の箇所に掲載)等でディレクトリ名を復元します。
  6. 動作確認、必要に応じて2.の改修作業からやり直します。
  7. 問題が無いことを確認後、「相対 URL を使用する」の入力欄を公開されているホームページのURLに合わせて「/」に変更します(URLにサブディレクトリを使用している場合は、それに合わせます)。
  8. 4、5と同様の作業を行います。
  9. 公開中のサイトのバックアップを取ってあることを確認の上、サーバー上の公開ディレクトリから、WordPressのファイル、ディレクトリ(wp-admin、wp-content、wp-includes)を削除します。このとき、WordPressと関係無いサブディレクトリを間違って削除しないよう注意です。
  10. 8で作成したディレクトリ、ファイルを、9で削除したディレクトリにコピーします。これで静的化されたサイトが見られるようになるでしょう。
  11. 静的化を行ったWordPressのデータベースを公開中のサイトのサーバーから削除します。メンテナンス用に、ローカル環境へと引っ越ししたサイトは、そのまま保管しておいた方がよいかもしれません。

日本語対応

Simply Staticが生成するサイトデータのZipファイルを展開すると、日本語のディレクトリ名がパーセントエンコーディング(URLエンコード)されていて、該当するURLリンクをクリックしても、アクセスできなくなっています。これをデコードしたところ、無事に動作するようになりました。

デコードするには、以下のrubyスクリプトが便利です。このスクリプトをエディタ等で作成し、適当な名前(例: conv_for_simply.rb)で保存します。

require "cgi"
require "fileutils"

# dir以下を再帰的に変換する
def convert(dir)
  Dir.chdir(dir) do
    Dir.glob("*").each do |filename|
      if filename.include?("%")
        newname = CGI.unescape(filename)
        puts "#{filename} -> #{newname}"
        FileUtils.mv(filename, newname)
      end
    end
    Dir.glob("*").each do |filename|
      if File.directory?(filename)
        convert(filename)
      end
    end
  end
end

convert(".")

このスクリプトを、展開したサイトデータの最上位の階層に配置します。そして、コマンドプロンプトに次のように入力すると、置換作業が行われます。

ruby conv_for_simply.rb

このスクリプトの入手元は、Qiita - Simple StaticプラグインでWordPressを静的ページに変換する( https://qiita.com/aosho235/items/3e386f0c2d5f36ef714f )です。

パーマリンクの変更について

Simply Staticの使い方を紹介する複数の日本語サイトで、Simply Staticを使用するためにパーマリンク設定を変更する必要があるかのような説明が見られました。けれども私のサイトではそのような必要はありませんでしたし、「WordPress.org プラグインページ」のSupportを幾つかざっと見ても、そのような回答は見かけませんでした。パーマリンクの設定で、既に基本( 例えば http://サイトのドメイン/?p=123 )以外になっている場合は、必要が無ければ変えるべきではないでしょう。変えてしまったら、かつてのURLでアクセスしようとしたときに、アクセスできなくなるでしょう。

コメントを残す