このカテゴリでは、Movable Type 4 を使用している際によく起こるトラブルについて、原因や解決方法を説明しています。
『トラブル集』カテゴリ内のエントリ一覧
- ソース中に大量の改行ができる
- MT4サイトではindex.xmlは作成されない
- グローバルナビゲーション設置時の問題点
- 同じ日本語タグが複数出力される
- 月別アーカイブのタイトルが0000年12月となる
- 全てのブログ記事が再構築されない
- ブログ記事へ一度タグをつけると空に出来ない
- MTOSで使用できないテンプレートタグ(Feed系タグ)
ソース中に大量の改行ができる
MTIf系やMTSetVar系など、条件分岐や変数に関するタグは、パブリッシュ段階でnullに置き換えられます。その際、改行が含まれていると、改行はそのまま残る為にソース中に大量の改行ができてしまう場合があります。
この場合は改行を含めずにコードをつなげて一行で記述すればいいです。
例:
<? echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?><MTSetVar name="body_class" value="mt-main-index"><MTSetVar name="main_template" value="1"><MTSetVar name="main_index" value="1"><MTSetVar name="sidebar" value="1"><MTSetVar name="module_recent_entries" value="1"><MTSetVar name="module_category_archives" value="1"><MTSetVar name="module_author_archives" value="1"><MTSetVar name="module_monthly_archives" value="1">
なお、こうすることによってコードが非常に見難くなります。
そこで、以下のような対処法もあります。
ページ先頭の改行を削除する(The blog of H.Fujimoto)
MTRemoveBlank プラグイン(Movable Type備忘録)
MT4サイトではindex.xmlは作成されない
Movable Type 3の頃は存在したindex.xmlが、Movable Type 4ではrss.xmlと名称変更されています。
Movable Type 3のサイトをMovable Type 4へアップグレードした場合、以前のサイトのindex.xmlを受け取ってサイトを購読していたユーザや、フィード情報を受け取っていた各種ブログサービスへ、サイトの情報を反映できなくなります。
Movable Type 3のindex.xmlとMovable Type 4のrss.xmlのファイルは、docsタグで囲まれたURL(RSS 2.0 Specification)の相違、MTEntryBodyファンクションタグでのconvert_breaksモデファイアの有無くらいしか相違点が無いです。
従来どおりのファイル名でフィード情報を出力するには、rss.xmlテンプレートのコードを新しく作った任意のテンプレートへ貼り付け、テンプレート名を「旧RSS」、出力ファイル名を「index.xml」などとし、このファイルのリンクをサイドバーなどへ追加で貼るなどすればよいです。
グローバルナビゲーション設置時の問題点
サイトルートに吐き出したウェブページを利用してナビゲーションバーを作成・設置する場合、インデックスページとエントリページと月別アーカイブページなどではナビゲーションバーが正しく表示されるが、カテゴリページでは表示がされない不具合が発生することがあります。
この場合、MTArchivesにarchive_type="page"モデファイアをつけてMTPageの代用とし、ラベルやリンクはMTArchiveTitleやMTArchiveLinkとすればよくなります。
以下サンプル
<!-- グローバルナビゲーション -->
<div id="navitop">
<div class="pad">
<ul>
<li><a href="<$MTBlogURL$>" title="ホーム">ホーム</a></li>
<MTArchiveList archive_type="Page">
<li><a href="<$MTArchiveLink$>" title="<$MTArchiveTitle$>"><$MTArchiveTitle$></a></li>
</MTArchiveList>
<li><a href="<$MTBlogURL$>archives.php" title="サイトマップ">サイトマップ</a></li>
</ul>
</div>
</div>
同じ日本語タグが複数出力される
データベースにMySQLを使用している場合、データベースの文字コードがMovable Type 4の文字コードと異なる場合に、「タグクラウドなどの処理にて、同じ日本語タグが複数出力される」「管理画面の文字が化けている」「ブログ記事にて、"~"が"?"と出力される」などといった不具合が起こることがあります。
以下サイトに運用中のサイトのMySQLデータベースの文字コード変更の例があります。
参考:
MT4で日本語を用いたタグクラウドがおかしい・~が出ない問題点(Under the Bridge)
月別アーカイブのタイトルが0000年12月となる
「ブログ記事リスト」テンプレート内で、
<$MTArchiveTitle$>
と記述していると、このテンプレートタグで得られる月別アーカイブのタイトルが「0000年12月」となる場合があります。この症状は、上記コードを以下のように
<MTSetVarBlock name="page_title"><$MTArchiveTitle$></MTSetVarBlock>
<$MTGetVar name="page_title"$>
と書けば、回避できることがあります。
(結局同じことをやっているのですが)page_title変数へMTArchiveTitleを代入して使用しています。
全てのブログ記事が再構築されない
ブログの再構築時に、まれに「全てを再構築」として再構築を実行しているにもかかわらず全てのブログ記事が再構築されていないときがあります。このような場合は「一覧」>「ブログ記事」のページで、表示数を200などとし、「タイトル」横のチェックボックスにチェックを入れると、200件のエントリに全てチェックが入ります。その状態で「再構築」ボタンを押せば、明示的に200件のブログ記事を再構築できます。ページを繰って全てのブログ記事にこの作業を行えば、全部再構築されます。面倒ですが。
ブログ記事へ一度タグをつけると空に出来ない
Movable Type 4.01では、ブログ記事にタグを付けて新規投稿すると、以後そのタグが削除できなくなる不具合がありました。なお、タグを別の文字列に書き換えることはできました。
一度つけたタグを削除できないのはMovable Type 4.01のバグが原因であるのですが、以下のプラグインを使用すれば削除できるようになります。
TagRemover Plugin(Junnama Online (Mirror))なお、この症状は2008年1月現在、Movable Type 4.1ベータ3で確認する限りでは修正・解消されている模様です。
MTOSで使用できないテンプレートタグ(Feed系タグ)
MTOSではFeed系のテンプレートタグは使用できません。使用すると再構築エラーが出て、再構築ができません。なお、Movable Type 4.1のほうではそのようなエラーは出ません。
例えば、以下のようなコードは再構築ができません。
<MTSetVarBlock name="FeedUrl"><MTBlogURL>rss.xml</MTSetVarBlock>
<MTFeed uri="$FeedUrl">
<h3><MTFeedTitle></h3>
<ul>
<MTFeedEntries lastn="10">
<li><a href="<MTFeedEntryLink>"><MTFeedEntryTitle></a></li>
</MTFeedEntries>
</ul>
</MTFeed>
- エントリ
- タグ
-
- .htaccess
- Advantage
- Apache
- Archive
- Asset
- Author
- Authority
- AutoSave
- BackUp
- body
- Bug
- Calc
- Category
- Check
- CMS
- Comment
- Company Site
- Config
- Contact
- CORESERVER
- count
- Create
- Creative Commons
- CSS
- Custom Field
- Date
- Default
- delete
- Designer
- DNS
- Domain
- Entry
- Environment
- Eval
- Example
- Export
- Feature
- Feed
- FFFTP
- File
- Folder
- For
- GetVar
- head
- html
- If
- Image
- Import
- Include
- index
- info
- Install
- key
- keyword
- License
- Local
- Loop
- Management
- Manager
- Meta
- Modifier
- Module
- MTElse
- MTElseIf
- MTFor
- MTGetVar
- MTIf
- MTIgnore
- MTLoop
- MTSeHashVar
- MTSetVar
- MTSetVarBlock
- MTSetVars
- MTSetVarTemplate
- MTUnless
- MySQL
- Navigation
- Next
- op
- Page
- Perl
- php
- PhpMyAdmin
- Ping
- Plugin
- pop
- Previous
- Principle
- push
- ReBuild
- Role
- Sample
- SetUp
- SetVar
- shift
- Spam
- Tag
- Template
- TrackBack
- Trouble
- undef
- unshift
- UpGrade
- UpLoad
- Usability
- Variable
- Version
- WebPage
- Wizard
- Writer
- XAMPP
- XHTML
- XML
- 導入編
- ローカル環境
- サンプル
- トラブル集