matsui
【Movable Type】リンクパス記述を書き換えて出力する方法
MTタグで出力されるソース内のリンクパスを書き換える方法をご紹介します。
■こんなときに役立ちます。
- http://~で出力されるソースのパスを、「/」始まりに書き換えて別ドメインでも使いたい
- リンクの最後に「/index.html」 と付けたくない、「/」で止めたい
- PC携帯共用ブログで、携帯ページ内のパスは/mobile/を入れて出力したい
■方法はわりと簡単です。「regex_replace」を使います。
「regex_replace」は正規表現を使ってMTタグの値を変換するグローバル・モディファイアです。
<mt:for eval="1" regex_replace="/変換前の記述/","変換後の記述"> ~テンプレート~ </mt:for>
このように書くと、囲まれたテンプレート内の値を変換することが出来ます。
変換前の記述は正規表現で書くのがポイントです。
これを使って<$mt:BlogURL$>などのMTタグで出力されるパスを書き換えることが出来ます。
例1)
「 http://tam-tam.co.jp/tipsnote/ 」を「 /tipsnote/ 」に書き換える
<mt:for eval="1" regex_replace="/https?:\/\/tam-tam\.co\.jp\/tipsnote\//g","/tipsnote/"> ~テンプレート~ </mt:for>
例2)
「 http://tam-tam.co.jp/~/index.html 」を「 http://tam-tam.co.jp/~/ 」に書き換える
<mt:for eval="1" regex_replace="/https?:\/\/tam-tam\.co\.jp(.*)\/index\.html/g","http://tam-tam.co.jp$1/"> ~テンプレート~ </mt:for>
例3)
「 http://tam-tam.co.jp/tipsnote/ 」を「 http://tam-tam.co.jp/tipsnote/mobile/ 」に書き換える
<mt:for eval="1" regex_replace="/https?:\/\/tam-tam\.co\.jp\/tipsnote\//g","http://tam-tam.co.jp/tipsnote/mobile/"> ~テンプレート~ </mt:for>
もちろん「regex_replace」はパス書き換え以外にも使用できます。
工夫次第で、とても便利に使えます。