- 2008-12-07 (日) 23:59
- MovableType


- ついでにiPhoneテンプレートの質問に、勝手に答えてしまおう。
ここで「iPhoneテンプレートfor MT」を使っていることは、何度か触れていると思います。
ウチみたいに、スキルが低いところだと、あんまり質問も来ないのですが、yujiroさんやcremaさんのように、スキルがあって親切な人にはヤマの様な質問が押し寄せる訳ですね。
とうぜん「「iPhoneテンプレートfor MT」を公開いたします。|iPhone|東京Webデザイナー日記リターンズ|crema design」も、長々とコメントが続いている訳です。
まぁハタから質問みてると、答えの予想が付いちゃうのもあります。
という訳でこのエントリーは、その質問に勝手に答えてしまおうというエントリーです。
ほとんどすべてがアーカイブマップの問題
寄せられている質問を見てみると、実際にはほとんどアーカイブマップの問題に限られているのが解ります
そしてそれは、さらに「公開設定」の問題・「アーカイブマッピング」の問題・「優先アーカイブテンプレート」の問題に分類できます。
それぞれを解説しながら、なぜ質問のような状況が起こったのか説明します。
公開設定で「アーカイブをサイトパスとは別のパスで公開する」になっている場合に、リンクがおかしくなる。
設定>公開>公開設定の「公開パス」で、アーカイブをサイトパスと別に指定する事で、アーカイブ(正しくはウェブページを除く、アーカイブテンプレートによる出力)が出力される場所を、特定のフォルダ以下にする事が出来ます。画面の例にも載っている様に、バーチャルホスト化した別サイト(www.hoge.jpに対するarichive.hoge.jp)へ公開設定する事も可能です。
この様な指定が行われた場合のアーカイブの出力は、アーカイブパス以下に出力されるために、同梱のreadme.txt通りに設置した場合、「サイト公開パス/i/」の中に出力がまとまらなくなります。(上の例だとアーカイブのみ「サイト公開パス/archives/i/」に出力される)
version1.01ではアーカイブのURL指定方法を、<$MTBlogArchiveURL$>に変更したため、リンク切れ自体は発生しませんが、上の様な状態になります。
これが気になるような場合には、アーカイブマップ指定部分とテンプレート内でのアーカイブへのリンク部分の双方で、変更が必要になります。もっとも、相対パスの概念とアーカイブがどこに出力されるのかを把握している場合には、さほど変更は難しいものではありません。
公開設定で、アーカイブオプションの「ファイルの拡張子」が「html」以外の時にリンクがおかしくなる。

アーカイブの拡張子は必ずしも「html」と決まっている訳ではありません。PHPスクリプトを使うために「php」にするケースや、コメント中で出てきている様に独自に指定しているケースもあります。
version1.01では、テンプレート内でのアーカイブファイル名を「<$MTEntryBasename$>.html」としています。それに対してアーカイブマップで指定しているファイル名は「%f」になっています。これはアーカイブの拡張子が「html」以外の時には等しくなくなります。
さらに、ここにも複雑な問題があります。アーカイブマッピング時に、「ファイルの拡張子」で指定した拡張子以外を指定する事も可能なのです。ここはやはり、ケースバイケースでテンプレートの書き方を変化させるしかない様です。
テンプレートとアーカイブマッピングの関係を正しく行わなくてはならない。
質問の中の何件かは、iPhoneテンプレートを設置する上での仕様を正しく理解していないものがありました。
「PC向けブログ記事のコメントやトラックバックのリンクだけがiPhone用のURLになってしまいました。 」のような現象で予想できるのは、正しくアーカイブマップを追加しなかったケースです。
アーカイブには優先アーカイブというものがあります。同じ種類のアーカイブ(「ブログ記事」や「ブログ記事リスト(月別)」など)が複数存在するときに、<$MTEntryPermalink$>や<$MTEntryLink$>、<$MTArchiveLink$>がどのアーカイブへリンクするかを決定するものです。
上のキャプチャの種類の部分「ブログ記事」の前にある、チェックボックスがその指定部分になります。優先アーカイブ指定するには、ここにチェックが付けます。
コメントのようなケースが発生するには、iPhoneテンプレート用ブログ記事のテンプレートのここに、チェックが入っているのが考えられます。その場合は、通常のブログ記事テンプレート側でチェックが外れていると思うので、そちらにチェックを入れて保存すれば解消されると思います。
ブログ記事のアーカイブマップがカテゴリーベースだからと言って、カテゴリーアーカイブでは無い
「個別ページがカテゴリーアーカーブのindex.htmlを書き出してしまい」という質問については、iPhoneテンプレートのブログ記事アーカイブマップが、記事の属するカテゴリーを使ったもののため、勘違いされているのではという気がします。しかしreadme.txtの通り設置した場合、よほど変わった記事の書き方をしていない限り、index.htmlが書き出されることはありえないと思います。
そもそもカテゴリーアーカイブとは別の場所に書き出されるはずなので、カテゴリーアーカイブのindex.htmlを書き出してしまうハズがないのです。
アーカイブがindex.htmlを吐き出すケースは、アーカイブマップを「/」で終わらせた場合です。意図的に変更しない限りはその様な状態にはならないと思います。
ArchivePathSelectorプラグインで、アーカイブをアーカイブパスではなくブログパスへ書き出す

小粋空間yujiroさんの作ったArchivePathSelector プラグインを使えば、公開設定でアーカイブパスを使う指定をしている場合でも、特定のテンプレートだけブログパスに出力するよう指定できます。(上のチェックボックス部分で切り替える)
しかし内容的にグダグダになってますね。ケース毎にまとめた記事をもう一度書く事にしましょう。リターンマッチです。
- Newer >: Facebook Connect Commenters
- < Older: WindowsマシンでWebサーバー
Trackbacks:(2)
- TrackBack URL for this entry.(1)
- Listed below are links to weblogs that reference
- ついでにiPhoneテンプレートの質問に、勝手に答えてしまおう。 from WolaWola
-
「「ついでにiPhoneテンプレートの質問に、勝手に答えてしまおう。」と「ArchivePathSelector プラグイン」」 from crema design 2008-12-15 (月) 21:18:11
-
Movable Type大好きっ子ならきっとご存知のブログ「WolaWola」の...
[詳しくはトラックバック元サイトで]
-
「「iPhoneテンプレートfor MT」を設定しました。」 from 19740308(TM) 2009-03-14 (土) 16:02:01
-
トミナガです。 昨日の寝る前に、すぐ終わるかな~と思って、cremaさんの「iP...
[詳しくはトラックバック元サイトで]




スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。