ほとんど放置状態だった当ブログですが、ついにWordPressに完全移行しました。
非エンジニア目線の記事が多く、迷ったところもあったので自分なりに手順をまとめてみます。
手順
WordPressインストール
LinuxサーバーにWordPressをインストールしていきます。
インストールしたいディレクトリに移動
cd /blog
最新のWordPressをダウンロードします。
wget https://ja.wordpress.org/latest-ja.tar.gz
解凍します。
tar zxvf latest-ja.tar.gz
WordPress諸設定
テーマ設定
WordPressのいいところといえば、ブログテーマでしょう。
Cocoonというテーマがシンプルで設定いらずだったので公式サイトからダウンロードして設定しました。
プラグインインストール
Classic Editor
新しいエディタはレイアウトがはてなブログと似ておらず使いづらいです。
旧版のエディタに戻せるこのプラグインを入れれば、はてなブログの編集画面そっくりになるのでぜひ入れましょう。
GA-4導入
Google Analytics 4を導入して、アクセス解析を行うことができるようにしましょう。
- Google Analyticsの管理画面で、新しいプロパティを作成します。
- プロパティの設定を「ウェブ」に設定します。
- グローバルサイトタグをコピーして、WordPressのテーマファイルのheadタグ内に貼り付けます。
記事データのエクスポート
はてなブログではMovable Typeという形式でブログ記事のエクスポートができるのでそれを利用します。
設定>詳細設定>高度な設定の欄からエクスポートができます。
記事データの書き換え
はてなブログ向けに書かれたHTMLをWordPressに向けて最適化する作業です。
サクラエディタやVSCodeなどの正規表現に対応したテキストエディタを使って行っていきます。
1.はてなキーワード
無料版のはてなブログを使っていると、ブログ記事内に勝手にはてなキーワードのリンクが挿入されてしまうので、それを削除します。
置換前文字列
<a class="keyword" href="[^"]+">(.*?)<\/a>
置換後文字列
$1
2.記事内URL
独自ドメインに移行する場合、記事データのURLを書き換える必要があります。
置換前文字列
http://example.hatenablog.com
置換後文字列
https://blog.example.com
記事データのインポート
Movable Type and TypePad ImporterというWordPressプラグインを使って簡単にインポートができます。
WordPressに権限がないとファイルのアップロードができないエラーが出るので、その場合は対応してください。
私の場合、一部記事のインポートができなかったのですがWordPressのバージョンを変えてやり直したら行けました。
リダイレクト設定
私のようにWordPressを機に独自ドメインに移行する方向けの処理で、同じドメインで移行する場合は不要です。
本当であれば検索エンジンに恒久的なリダイレクトであることを伝えられるサーバー側での301リダイレクトをしたいところですが、はてなブログではそれができないためJavaScriptのlocation.replaceを使って直接転送する処理をさせます。
<script type="text/javascript">
const oldUrl= window.location.href;
const oldHost= 'https://blue-method.hatenablog.com';//ここにはてなブログのURLを入れる
const newHost= 'https://blog.bmth.dev';//ここに新ドメインのURLを入れる
const newUrl= oldUrl.replace(oldHost, newHost);
location.replace(newUrl);
</script>
このコードをはてなブログのheadタグ内に埋め込みます。
意外にもすぐに認識してもらえました。
→
おわりに
実のところ昨年2月ごろには既に移行は終わっていましたが、色々設定が面倒なのと、名残惜しかったのもあり転送だけまだしていない状態でした。
はてなブログは設定などがわからなくてもブログを書き始めることができる、とても良いサービスでした。
一時期は毎月4記事以上更新しようと頑張ったり、有料のはてなブログProにも登録するほどでした。
更新が途絶えた今でも地味にアクセスされているのはありがたい限り。
大変お世話になりました!
移行に際して不明な点などあればTwitterで質問してください。
コメント