先月、MT.netの14日間トライアルで、WPからの引っ越しとカスタマイズを試してみた。
引っ越しは簡単で、カスタマイズでかなりいけることもわかった。MTの良さも再認識した。
現状では足りない部分もあるが、将来の選択肢のひとつとして大きく浮上したことは確かだ。
WordPress から MovableType.net への引っ越しは簡単、でもカスタマイズは…
MovableType.net でカスタマイズしてみた…
思うのは、個人でも利用しやすい料金設定があればいいな、ということ。サーバー代+管理代も含まれているのだから、費用が発生するのは当然だ。けれども、wpXサーバーなどと比較すると、どうしても割高感がある。利用者が増えればこなれてくるのかもしれないが、そのすそ野の部分の利用者を増やす意味でも、最初の一歩を気軽に踏み出せるプランが欲しい。
さて、カスタマイズが終了し、トライアル期間も終わった。テーマは[書き出し]で、サイトとブログは[エクスポート]でPCにダウンロードした。これでいつかMT.netを利用するとき、ゼロから始めなくても済む。ただし、MT.netはWPのようにローカル環境で作業や確認ができない。視認できる場所に残しておきたかったので、バックアップも兼ねてロリポップに置いておくことにした。(MTであればローカル環境も作れるが、それはそれで面倒なので)。
Vaivie.com(MT.net14日間トライアル後、MT6に移し替えたもの)
超久しぶりのソフト版MTである。wpXやMt.netですっかり横着になった身には、やはりサーバーへのインストールは面倒であった。ロリポップのマニュアルを参照しながら、DB作成→MT6ダウンロード→解凍→FTPでサーバーにアップ、インストール時にDB情報を入力、エトセトラ。それでも以前よりはスムーズのような気はする。FTPアップロードでもエラーにならなかったし。
MT新規インストールの事前準備
ロリポップ>MovableTypeの設置
MovableType.net からソフトウェア版に移行
サイト下にブログを二つ作成。サイトパスの設定に若干苦労したものの、なんとか形は整った。続いて、サイトと各ブログに、MT.netからエクスポートしたフォルダ内のcategory.txt、folders.text、pages.txt、posts.txtを順にインポート。
FTPでサイトのディレクトリ/Themesに、MT.netでカスタマイズ後にエクスポートしたテーマ(サイトとブログで×3)をアップロードし、適用。ベーステーマは[Stylish Corporate]である。
再構築で確認しながら修正
この状態で再構築するとエラーになる。MT.netのタグのなかに、MTに対応していないタグがあるためである。ファイルの該当箇所をひとつひとつ修正していくしかないが、再構築をかけるとどのファイルのどのタグが問題であるかを教えてくれるので、それほど大変でもない。
Movable Type と MovableType.net の MT タグ差分表
1)MT未対応の<$mt:CategoryDepth$>
を削除する。対称となるテンプレートファイルは、news-sidebar、footer。entry-listも修正する。
2)マルチブログで読み込むモディファイア、include_blogs の識別子がMTでは使えない。検索/置換で、ブログid(2,3等)に変更する。一発で変更出来る。
3)カスタムフィールドの書き方がMTでは異なるため、category-listの該当箇所を以下のように修正。
<ul>
<mt:TopLevelCategories>
<li><a href="<$mt:CategoryArchiveLink$>">
<article class="newsentry__item clearfix">
<dl class="catalist-dl">
<dt class="catalist-dt">
<mt:If tag="catimage">
<mt:catimageAsset>
<img src="<$mt:AssetURL>" width="200" title="<$MTCategoryLabel$>"
alt="<$MTCategoryLabel$>">
</mt:catimageAsset>
</mt:If>
</dt>
<dd class="catalist-dd">
<h3 class="newsentry__title"><$mt:CategoryLabel encode_html="1"$></h3>
<p class="newsentry__main"><$MTCategoryDescription$></p>
</dd>
</dl>
</article>
</a>
</li>
</mt:TopLevelCategories>
</ul>
4)ブログ概要、カテゴリのスラッグと概要などを調整。なぜか自動でタイトルなしテキストなしの記事が5本ほど作成されていたので削除。すると、ばっちりMT.netと同じ内容のサイトが立ち上がった。
画像は手作業で移設するしかない
MT.netはWPからのxmlファイルのインポートの際、画像も取り込んでくれる。が、よそへ引っ越す際は画像の持ち出しを許してくれない。FTPでつなげられないので、ダウンロードも出来ない。
画像をどう管理するかは、WPでもMTでも結構な問題で、試行錯誤の末に至った解決策&結論は、画像は外部に置く、というものである。私はFlickrに置いているが、画像は常に同じ場所にあるから、引っ越しても画像もリンクも修正する必要がない。WPであれば、外部画像をアイキャッチやサムネールとしても利用できるプラグインがある。
が、この度トライアルに選んだサイトは、この結論に至る以前に作成したもので、WPの画像は全て[メディア]にあった。よってMT.netでは[アイテム]に収集格納されている。この画像を、MT.net→MTではエクスポート-インポートが出来ないのだ。
こうなると画像アップも画像リンクも手作業で修正するしかないのだが、この際だから上記方針に従ってアイテムにあげるのをやめることにする。といっても全てをFlickrにアップし直し、記事のリンクをひとつひとつ修正するのはかなりの手間なので、Flickrではなく、サーバーにまとめることにした。
まずはFTPで、(MT.net移設前の)WPの[メディア]にある画像をとりあえずPCにダウンロードして、ひとつのフォルダ(名前:photo)にまとめておく。その後これをMT6を設置したディレクトリにアップする。
MT.netでは画像へのリンクはこのようになっている。
https://サイト名.movabletype.io(/ブログ名)/.assets/画像名.jpg
ツール>検索/置換で[記事]にチェックを入れ、上記の下線部分で検索し、以下に置換する。
http://引っ越し先サーバードメイン/MT設置ディレクトリ/photo/
MTは検索/置換が非常に便利である。
ついでに思ったのだが、WPのメディアの画像は年月日のフォルダに整理しないほうが良いね。律儀に月ごとに振り分けていたのだが、一つにどんと納めていた方がこういう場合には楽である。
外部 Feed の取得
MT.netでは未対応だが、MTにはプラグインFeeds.App Liteがデフォルトで組み込まれており、外部フィード(サイトタイトルと記事タイトル)を取得できる。当サイトの情報を取得するよう設定してみた。テンプレート・モジュール[feed]を以下の内容で新規作成し、メインページにインクルードする。
<div class="container-fluid mt-container-fluid">
<div class="col-sm-3">
<h3 class="newsarea__title">
<a href="https://provaiciao.jp">PROVAI.ciao</a>:最近の投稿
</h3>
</div>
<div class="col-sm-9 newsarea__entry">
<mt:Feed uri="https://provaiciao.jp/feed/">
<ul class="feed-list">
<mt:FeedEntries lastn="5">
<li><a href="<$mt:FeedEntryLink encode_html="1"$>"><$mt:FeedEntryTitle$></a>
</li>
</mt:FeedEntries>
</ul>
</mt:Feed>
</div>
</div>
コンタクトフォームとコメント欄をどうするか
MT.netはデフォルトでフォームが利用可能だが、MTにはない。もうひとつ、Mt.netにはコメント欄がない。今回は、カスタマイズ事例&メモなのでどちらもいらないが、実際には必要になってくる。
MTのフォームはプラグインで自力で入れるしかない(商用は有料)。コメント欄はどうするか。MT.net用テーマにはコメント関連のテンプレートはないし、システムテンプレートもない。コメント欄は放棄してコンタクトフォームだけにするという選択肢もあるだろうけれど、方策がないわけでもない。
ベースをMTのテンプレートにすれば良いのだ。そのベーステーマに、カスタマイズしたMT.netのテンプレートファイルを組み込む。つまり、コメント関連テンプレートはMTのベーステーマを利用し、その他はMT.netのテンプレート0を利用する。たとえばどのテーマにも共通の[メインページ]や[スタイルシート]などは中身を入れ替え、ベースにはないテンプレートや新規作成したものは追加する。
適当なテーマでテストブログを作成し、試してみた。記事テンプレートの末尾、SNSボタンとGo to Topの間にコメントを呼び込む以下のタグを追加し、CSSを調整。これでいけそうである。
<$mt:Include module="コメント"$>
と、MTへの移設は、最初のインストールとタグ修正をクリアしたあとは何の問題もなく、するするとスムーズであった。テーマをほぼそのまま適用できるのが大きい。
ソフト版MTはブログ数に制限はないし、無料で使えるし、メリットも多々ある。が、将来また利用するかというと…、ないだろうなあ。やはり再構築がかったるい。フィード取得は可能でも、再構築しなければ最新の投稿は反映されない。こちらで記事を書いた後、いちいち再構築のために出向くのは面倒だ。
なので過去にはCron設定による自動再構築を試みた。が、他のプラグインも必要で、なかなかうまくいかず、最終的にはこれが理由でMTをあきらめ、WPに移設したのだった。MT6ではそんなことはないかもしれないが、あの苦労がトラウマになっていて気が進まない。これは再構築が必須のMTではずっと残る問題ではないかと思う。
ということは、将来の選択肢としてWPと同じラインに並ぶのはやはりMT.netのほうであろう。あとは、外部Feedの取得とコメント欄が可能になるかどうか。
MT.net と Github連携 について
MT.netアカウントは試用期間終了後もそのまま残る。トライアル終了メールには、以後は管理画面での編集はできないが、サイトは一か月間確認可能とあった。ただし、別のサイトを作成すればまた二週間試用できる。終了したサイトは削除し、別ドメインで新サイトを作成、PCにダウンロードしておいたカスタマイズ済みテーマを適用させてみた。サイト&ブログの記事もインポートすれば、サイト構築完了(写真以外)。本当にあっという間である。
MT.netで最後に残った課題がGithub連携。これがほんとに必要なのかどうかを検証してみた。
Githubにアカウントを作成し、ローカルにSourceTreeというアプリケーション(これがないとコマンド入力となる)をインストールする。SourceTreeとGithubのリポジトリを連携し、それをMT.netと連携させれば、ローカルの作業がただちにサイトに反映されるという。Githubは複数の人の作業を履歴で管理できるスグレモノということだが、一人作業者にも良いことがあるのだろうか。
GitGHub連携機能だが、「MovableType.netのテンプレート編集画面で作成したテンプレートは連携不可」という記述があった。以前WPで使っていたWebMatrixのようなものをイメージしたのだが、どうやらMT.net-Githubという二つのリモートとローカルの間で、完全な双方向性は得られないようである。
また、ローカルの作業はWebMatrixのようにビジュアルで確認できない。それなら管理画面作業のほうが良いのではないか。いや、ローカル→Githubにプッシュでただちに反映されるなら、管理画面作業とそう変わらないのではないか..、と迷いながらのトライアルである。
まずは、エクスポートしたテーマファイルをローカルの専用のフォルダにまとめる。MT.netからローカルに持ってくるにはこの方法しかない。サイトとブログのフォルダ構造を以下を参考に作成し、Source Treeのリポジトリに新規設定→Githubに作成してあったリポジトリにプッシュ、最後にMT.net側からこのGithubのリポジトリに連携、とやってみた。ローカルで変更した箇所は、確かに瞬時にMT.net上のファイルに反映された。
MovableType.netのデザインをGitHub連携でやってみる with SourceTree …
これでハマらない Movable Type.net と githubの連携
GitHub連携機能でウェブサイトと配下のブログのテーマをまとめて管理する
GitHub連携でデザインを管理する
とさらっと書いたけれど、ここまで来るのにGithubやSourceTreeについての解説をあれこれ拾い読みしながらで、結構日数がかかった。結果連携はできたけれど、GithubとSourceTreeがきちんと理解できているわけではない。
わかりにくかったのは用語や作業手順。SourceTreeにはWebMatrixのようにエディター機能もなく、純粋に(複数人の)作業管理と、GithubとのやりとりのためのGUIソフトだということ。ただ、最初のハードルは高かったけれど、連携そのものはWebMatrixよりスムーズだった。これでいつか正規にMT.netに引っ越す際は、Githubからテーマを引っ張ってくればいいのかしら?
が、ここまでやっても、Github連携にどのようなメリットがあるのかがイマイチわからない。これではテーマをインポートして、MT.net上で作業するのとたいして変わりがない。先ほど書いた双方向の同期ができて初めてメリットだと言えるのではないか(あくまで一人作業の私の場合)。
もうひとつ、GitGHubの無料アカウントでは、ファイルがそのまま世界に公開されてしまう。テンプレートのカスタマイズコードなど別段プライバシーというわけではないけれど、全て丸見えというのも気にはなる。作業終了後削除すればいいのだろうか。
公開しておけば誰かの役に立ったり、あるいは誰かが間違いを直してくれたりするのかもしれないけれど、既存のテーマのカスタマイズなので、それほどのものではないとも思う。
などと思案していたら、MT.net用のテンプレートがGithubで無料公開されているのをみつけた。それも既存のテーマをカスタマイズしたもので、フリーで利用可とあった。このような場合、無料であればライセンス上の問題はないのだろうか。
SourceTreeでリモートリポジトリ(GitHub)にプッシュするための設定方法
Git入門(2)〜SourceTreeの使い方
Git入門(4)〜GitHubで共有する
GitHubのリポジトリを削除する方法
GitツールSourceTreeでリモートリポジトリを操作する方法
コメント