いっしきまさひこBLOG

AI・機械学習関連、Web制作関連、プログラミング関連、旅行記録などなど。一色政彦。

MTでテンプレート リンク ファイルへのパスを一括置換するには?

MTの複数のブログでテンプレートを共有するには?」のエントリで紹介した方法で「このテンプレートにリンクするファイル」(以下、テンプレート リンク ファイル)を活用する場合、そのファイルの絶対パスを指定します。

templatelink1.gif

そのため、Movable Typeのサイトを移行すると、絶対パスが変わって、せっかく前回指定したパスが無効になってしまいます。これを手動で編集し直すのは面倒な作業です。

これを回避するには……

データベースに保存されているパスの情報を(移行後に)一括で書き換えるとよいでしょう。MySQLデータベースを使っている場合には、次のSQL文をシステムにログインしてコマンドライン・コンソールから、もしくはphpMyAdminなどのツールから実行してください。

UPDATE `mt_template`

 SET `template_linked_file` =

  REPLACE (`template_linked_file`, '<昔のパス>', '<新しいパス>')

 WHERE `template_linked_file` LIKE '<昔のパス>%';

<昔のパス>と<新しいパス>はそれぞれの環境によって異なりますので、適切なものを入力してください。

【入力例】

<昔のパス>の例 :/home/oldsite/public_html/

<新しいパス>の例:/home/newsite/www/

これを実行することにより、Movable Type用データベースにある、テンプレート管理用の「mt_template」テーブルの中にある、「template_linked_file」というテンプレート リンク ファイルを管理するカラムに格納されている「<昔のパス>」のデータを「<新しいパス>」に書き換えてくれます。

作業はこれだけです。