update.はじめにMTを魔改造して、さも普通のサイトっぽいものを作ろうと思ったとき困ったのでメモです。Wordpressと違って、MTのテーマ開発に関してはあまり情報が出回っていない気がするので同じように困っている人(いるのか?)の助けになれば嬉しいです。筆者はネット上に存在する情報をかき集めながら手探りでやってます。今回は、ルート直下に(1)index.html(2)subpage.htmlがあり、共通のコメント欄を表示したい場合です。(コメント欄をツイッターのタイムラインみたいにしたい時!)なるべく、管理画面からの操作するパターンとテーマファイルを直接編集するパターンの両方を書いておきます。そもそもindex.htmlにコメントを置けるのか?1デフォルトのトップページの出力を変更デフォルトではトップページにコメントを付けられません。・ウェブページのどちらかであればコメント機能を使えます。今回は(1)index.html→記事として作成(2)subpage.html→ウェブページとして作成にします。両方記事や、両方ウェブページでも良いのですが、2ページだけであればこのパターンが速いです。(1)index.htmlまずはトップページの「記事」を作ります。内容は空欄で大丈夫です。【管理画面】タイトルはトップページにしておきましょう。(何でも良いです)このとき、「出力ファイル名」を「index」にします。さっき打ち消したデフォルトのトップページの代わりに、こっちが「index.html」として出てくるようにします。警告が出ていますがまぁその通りです。かぶらないようにしてください。その次はアーカイブテンプレートを編集します。今回はこれ以上記事を増やさないつもりなので、デフォルトの「記事」をそのまま編集してしまいましょう。【管理画面】テンプレートの名前は何でも良いのですが、トップページのテンプレートにするのでトップページとしておくとわかりやすいです。DOCTYPE宣言が書かれているのでお分かりかもしれませんが、この中にページ内容を普通にコーディングしていけばよいのです。テーマファイルを直接編集する場合はmain_index.mtmlなどをコピペしてindex.mtmlにリネームしてください。そこからはhtmlのようにコーディングしてokです。【テーマファイル:theme.yaml】individualの部分が記事にあたります。・再構築をしないと変更が反映されないので注意です。面倒くさいですね!で!!!このあと注意なのが、アーカイブパスを変更しないと記事にテンプレートが反映されない点です。デフォルトだと、記事を作成したときサイト名/2018/11/記事.htmlみたいなURLが生成されるんですが、さっき出力ファイル名を変更しましたよね?警告が出ていたやつです。【管理画面】アーカイブマッピングというので出力ファイル名を決めているんですね〜。ここを、日付部分をすっ飛ばしてindex.htmlになるようにします。パスのプルダウンから「カスタム」を選択で、削りたい「y」と「m」を削除して「%-f」にします。これで完了!再構築すると、先ほど「記事」で作成した「トップページ」のパーマリンクが日付の入らないものに変わっているかと思います。・アーカイブマッピングを「%-f」にするちなみにtheme.yamlはこんな感じです。これで最低限(1)index.html(2)subpage.htmlが出力されたはずです。今回はindex.html→コメント欄を設置subpage.html→index.htmlのコメントを参照できる。ここからした投稿はindex.htmlのコメントとして扱われるということにします。1コメント表示部分(1)index.html【管理画面:アーカイブテンプレート>記事】デフォルトでコメントモジュールがインクルードされているのでそのまま使ってokです。カスタマイズしたい場合は適宜!(割愛します)【テーマファイル:index.mtml】どのファイルを元にしたかによりますが、コメントモジュールの読み込みがなかった場合は入れておいてください。↑みたいにしとけばokです。(2)subpage.html【管理画面:モジュールテンプレート>コメント】mt:Comments〜的なタグがいっぱい書いてありますが、これらのコメント表示制御用のタグは記事内や、ページ内で使用するとそのタグが置かれている記事やページのコメントを表示してくれるようになっています。便利なんですが、今回はsubpage.htmlのコメントは要らないので、ちょっと変えてあげる必要があります。【管理画面:モジュールテンプレート>コメント】さっきの例とだいぶ内容が違っててすいません。気にしなくていいです。注目すべきは「mt:Actions」を使っているところです。公式リファレンスによるとユーザーの投稿した記事やトピック、コメント、お気に入り登録など、コミュニティ内でのアクション一覧を表示するためのブロックタグです。include_blogs="126"というのはブログに割り当てられているIDです。IDの確認は、管理画面のブログの管理→表示オプション→IDにチェックでできます。降順で表示できた方がいいですよね。大量のインプットタグ!この中の<$mt:EntryID$>だとか、<$mt:BlogLanguage$>だとかが「今このタグがあるページ」を指しています。index.htmlに関してはいじらずでokです。普通にこっから作れます。新しく作ると言っても、まずはさっきのコメント入力フォームの内容をコピペします。タイトルはサブページ用のコメント入力フォームとかにしとけばいいです。さっきの大量のインプットタグ!この中の<$mt:EntryID$>だとか、<$mt:BlogLanguage$>だとかが「今このタグがあるページ」を指しています。index.htmlのもろもろが反映された版に書き換えちゃえばいいわけです。わたしはブラウザでindex.htmlを開いて、検証ツールで該当部分を探し出してそのままコピペしました(強引)【管理画面:テンプレートモジュール>サブページ用のコメント入力フォーム】index.htmlの記事idが2313だったということです。サブページ用のコメント入力フォームがインクルードされるように適宜編集してください。マウンテンウォーク@enkbutterデザイン事務所にて、表現分野寄りのフロントエンドエンジニアをしています。upLoginユーザーは見つかりませんでした。