MovableType3.6のデータを4.1にコンバートしたら、一部機能が正常に機能しなくなりました。 大きくは検索でエラーが出る点とコメントフォームが正しく表示されない点です。
あれこれいじってなんとか動くようになったんですが、ウチでホストしている他のブロガーの為に、外観、テンプレートを極力書き換えずに機能させる手順をまとめてみました。
ドキュメント等を見ずに我流で編み出した方法なので、もっとスマートなやり方があるのかも知れません。というか従来のデザインにあまり名残が無いのであれば、いっそテンプレートをリセットしてMT4のものをベースに再構築した方が、後々シアワセになれるかも知れません。モジュール化、サイドバーへのウィジェット配置機能などせっかくのコンセプトが活かせるからです。実際、このブログは練習も兼ねてそうしてみましたが、かなり見通しがよくなった気がします。
■なぜ検索でエラーが出るのか?
DBコンバートしただけの状態では「 検索結果の作成に失敗しました。」と出てしまうワケですが、この原因は、「システムテンプレート」→「検索結果」テンプレートの中で呼んでる(インクルードしている)「ヘッダー」、「ブログ記事の概要」、「フッター」という3つのテンプレートモジュールが存在しないからのようです。この3つを用意してやれば正常に機能するというワケです。
「検索結果」テンプレートを開いた画面で、右サイドバーの「インクルードモジュール」という見出しの下に、各モジュールを新規作成するリンクがあるので、そこから作れば簡単です。
■「ヘッダー」
文字通り<html><head>~</head>辺りのテンプレートです。MT4の標準テンプレートを見ると、<body>以降も共通となる部分は若干含んでいるようです。「メインページ」テンプレートからごっそりコピーするのが簡単でしょう。
MT3の標準的な2カラムレイアウトのテンプレートをベースにしている場合、
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
から、<MTEntries>で記事データが始まる直前の、
<div id=”pagebody”>
<div id=”pagebody-inner” class=”pkg”>
<div id=”alpha”>
<div id=”alpha-inner” class=”pkg”>
あたりまででよさそうです。
■「フッター」
同様にフッターも「メインページ」から最後の部分をコピペします。サイドバー部分もメインページ同様に表示されるようにするには、</MTEntries>直後からざくっと行きましょう。
■「ブログ記事の概要」(→別名で作成)
さて、問題は検索に該当した記事の表示フォーマットを既定する部分です。一番簡単には、「メインページ」テンプレートから上記の「ヘッダー」、「フッター」にもってった部分の残り、つまり<MTEntries>~</MTEntries>の中身を流用する手がありますが、これだと本文が全て表示されてしまうので、ヒット数が増えた時に一覧性がよろしくありません(MT4標準ではそうなるようです)。
そこでこの際、シンプルに日付入りのタイトルのリストになるようにしましょう、
<li class=”search-list-item”><$MTEntryDate format=”%Y.%m.%d”$>: <a href=”<$MTEntryLink$>”><$MTEntryTitle$></a></li>
です。
「ブログ記事の概要」というテンプレート名はMT4のテンプレート群の中では重要なものなので、中身を大きく改変したものを重複する名前で作っておくと、将来MT4テンプレートを一括導入した時に問題になりそうなので、ここでは「タイトル一覧項目」という名前で作成しておきます。
■「検索結果」テンプレートの調整
上記モジュールを呼び出すシステムテンプレート「検索結果」を調整します。元々
<$MTInclude module=”ブログ記事の概要” hide_counts=”1″$>
と書かれた行があるので、これのモジュール名を変えつつ、<ul>タグを追加します。下記のように置き換えて下さい。
<div class=”search-content”>
<ul class=”search-list”>
<$MTInclude module=”タイトル一覧項目” hide_counts=”1″$>
</ul>
</div>
■スタイルシートの調整
例えば、リストの文字が小さいな、という気がしたら、「インデックステンプレート」→「スタイルシート」テンプレートに
.search-list-item a {
font-size:medium;
margin-left:3px;
}
などと調整しましょう。
既にMT3環境がなく、検索結果画面のレイアウトが調べられないので、適当にでっちあげてしまいましたが、以上でとりあえず動くようにはもってけると思います。
次回は、コメントフォームを動かすための最低ステップをまとめてみたいと思います。
MovableTypeの検索で「検索結果の作成に失敗しました。」というエラー
会社で使用しているMovable Type version 4.1な…