【Movable Type】MTの書き出すURLをルートパスにする|Blog|株式会社トライム

Keyword

Contact

についての不明点や案件のご相談などございましたらお気軽にお問い合わせください。

Share

X Facebook pocket LINE はてなブックマーク

【Movable Type】MTの書き出すURLをルートパスにする

2016.09.20

トライムではMovable TypeやWordPressを使ったサイト制作を沢山お受けしています。
ここ数年、WordPressを使う機会が増えた一方、MTを使う機会は減ってきてはいますが、それでもMTを使う際の大きな理由は、やはり生成されるファイルが静的であることです。

この特長の優れたところはMTのコアファイルが公開サーバーに無くても良いため、ステージング環境を簡単に作れるところです。WordPressだとステージング環境を作成するのは不可能ではないものの、そこはMTの方が得意です。

ただし、URLを書き出す下記のようなタグ、

<$mt:EntryPermalink$>
<$mt:CategoryArchiveLink$>
<$mt:ArchiveLink$>
<$mt:AuthorAuthIconURL$>

などなど(他にもたくさんありますが)は、そのまま公開してしまうとステージング環境のURLになってしまいます。

これは「Abs2Rel」というプラグインを使うことで簡単に解決できます。
しかしセキュリティが厳しい案件で、プラグインを自由にインストールできなかったりする場合もあり、難しいことではないので、うちではプラグインを使わずに対応してます。

プラグインを使わずにルートパス化する

手順1 モジュールを作る

まずは、下記の内容でモジュールを作ります。
名前はお好みですが、ここでは「vars」としました。
このモジュールはシステムに作るのが一番ですが、場合によってはウェブサイトでも大丈夫です。

<mt:SetVars name="site_info">
  site_url=<$mt:WebsiteURL$>
  site_path=<$mt:WebsiteRelativeURL$>
</mt:SetVars>

「site_url」という変数にMTで設定されているウェブサイトURLが入ります。
「site_path」にはルートパスが入ります。イメージとしては下記のような感じです。

<!-- ルート直下がウェブサイトURLの場合 -->
site_url = http://example.com/  
site_path = /

<!-- サブディレクトリの場合 -->
site_url = http://example.com/example/  
site_path = /example/

手順2 モジュールを読み込む

続いて、作成したモジュールを使用するテンプレートで読み込みます。

<!-- システムにモジュールを作った場合 -->
<$mt:Include module="vars"$>

<!-- ウェブサイトにモジュールを作った場合 -->
<$mt:Include module="vars" parent="1"$>

手順3 MTタグにreplaceモディファイアを追記

あとは、replaceモディファイアを使い下記のように記述すればOKです。

<!-- 通常のタグ -->
<$mt:EntryPermalink$>

<!-- 下記のように変更 -->
<$mt:EntryPermalink replace="$site_url","$site_path"$>

まとめ

タグのひとつひとつに設定していかなくてはならないので、少し手間ではありますが、それは「Abs2Rel」でも同じなので、トライムではこのやり方を採用しています。

最後に書き出されたファイルをエディタで一括検索して見落としの無いようにしてください。

PowerCMSやMTCMSにはステージング運用に便利な機能があり、このような手間を掛けずに済むのですが、コスト面などで使えないケースも多いです。
そんな時にこの方法が役に立つと思います。

トフはシックス・アパートの公式キャラクターです。CC BY-NC-SA 4.0 の下でライセンスされており、オリジナルは シックス・アパートのウェブサイトで入手可能です。

Share

X Facebook pocket LINE はてなブックマーク
Webサイト制作についてお悩みでしたら私たちにご相談ください。

私たちはECサイトなどのBtoCのサイトの制作に特化したWeb制作会社です。マーケティング視点をもったクリエイティブにより、運用まで見据えた効果の高いWebサイトを構築いたします。Webサイトについてお悩みのWeb担当者の方は、トライムまでお気軽にご相談ください。

Keyword

Contact

についての不明点や案件のご相談などございましたらお気軽にお問い合わせください。

Contact

お問い合わせ

トライムは常にお客様へ寄りっ沿った提案をさせていただきます。
自社のEC売上の拡大や人材不足などのお客様のデジタル上の課題を、
様々なアプローチにより解決するお手伝いをいたします!
お気軽にお問い合わせください。

TEL

03-6403-3259

受付:10:00 - 19:00