F.Ko-Jiの「一秒後は未来」

往年のMT3からWordPressに移行しました

ブログを置いてるサーバーがだいぶ古くなっていて新しいサーバーに移転したかったので、サーバーを移転するついでに往年の Movable Type 3 系から遂に WordPress に移行しました。

とりあえずは必要最低限のものが揃っていればいいだろうということでウルトラシンプルなブログになっています。テーマはドットインストールの WordPress 入門を参考に自作です。今はもう PC よりスマホからのアクセスのほうが多いので 1 カラムのレスポンシブデザインにしてサイドバーなし、雰囲気もシンプルにしました。

新しいロゴというかタイトル画像は、あのナメクマさん LINE スタンプでおなじみの F.Ko-Ji さんにお願いしました。はい。

↑ 謎解き要素は入ってませんw

サーバー構成は Docker をどこかのサイトで使いたいと思っていたので nginx + php-fpm + MariaDB それぞれを Docker コンテナ化して設置しました。Docker の仕組みを理解するのがなかなか大変でした。

MT3 からの移行は特にツールは使わず、Movable Type と WordPress のデータベース構造を調べてスクリプトを組んで記事とカテゴリーのみインポートしましたが、そんなに難しくなかったです。アイキャッチ画像の設定は記事をインポートした後に「Auto Post Thumbnail」というプラグインで一括でできました。超便利。

ハマったところといえば記事のパーマリンク。MT の頃からパーマリンクを「/年/月日時分.html」の形式にしていたので、そのまま引き継がせるために「/%year%/%monthnum%%day%%hour%%minute%.html」と設定したのですが、なぜかうまく単一記事ページ用の single.php が表示されません。

nginx の設定が間違っているのかと色々試すもうまくいかず、よくよく見てみるとどうも日付アーカイブのページになっているなぁというのに気づいて、それを手がかりに調べてみると以下の記事が見つかりました。

» WordPressのパーマリンクを日付ベースにする方法 – Rewish

WordPressのパーマリンクを/YYYY/MM/DD/hhmmの様な日付ベースにしようとすると、日付アーカイブになってしまい記事単体のページとして認識されません。

まじですか…。というわけでこちらのサイトを参考に functions.php に関数を記述。ただ参考サイトのコードだと hour や minute が 0 の場合にうまくいかないので、hour や minute は 0 でも OK になるようにしないといけないです。というかクエリのパースで hour や minute が存在しなくても数値の 0 がセットされていて、存在して 0 時や 0 分の場合でも数値の 0 になってしまうのイマイチなのでは…。

さらに調べると公式ドキュメントの「パーマリンクの使い方 – WordPress Codex 日本語版」には次のような記載がありました。

アーカイブリンクとして解釈されるのを避ける
一日に一投稿しか公開しないので %year%%monthnum%%day% というパーマリンクを使用したいと思うかもしれませんが、このリンクはその日の全投稿のアーカイブとして生成されることに注意してください。個別投稿へのリンクは、少なくとも %year%%monthnum%%day%%hour% にする必要があります。

あれ、%hour% まで含んでるのにな…。個別投稿として認識されるためにはもう少し条件があるのかもしれません。

プロフィールページやコメント欄などはまだ用意できていないので追々作成します。共有ボタン類や AdSense もどうしようかと検討中。カテゴリーや RSS フィードなどは nginx で旧 URL から新 URL にリダイレクトするように設定しましたが、何か不備があれば Twitter で教えてくださると嬉しいです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など