チャレンジ! Movable TypeをCMSとして使ってみよう!

第15回 検索結果テンプレートとサイトマップページを完成させる

この記事を読むのに必要な時間:およそ 3 分

自動で更新するサイトマップページ

ほげ山くん:じゃあ,先輩,このあとはサイトマップのページの解説になるんですよね?これって,ブログ記事を追加したら自動で更新される,ってモノでしたっけ?

くれま先輩:うん,そうそう。CMSを使っていなかった時代って,ページが増えるたびにサイトマップを手動で更新していて,面倒くさかったなぁ…。って思い出しちゃったりして。まぁそれはそれとして,前に作ったインデックステンプレートの「サイトマップ」の編集画面を開いてみてね。

ほげ山くん:上部メニューの[デザイン→テンプレート]を選択して,インデックステンプレートのセクションの「サイトマップ」をクリック…と…。

くれま先輩:そうしたら,<div id="primary">の中の<mt:Include module="パンくずナビゲーション" />の直後に,以下のサブテンプレートを追加してね!

<mt:Include module="パンくずナビゲーション" />直後に追加するサブテンプレート

<mt:TopLevelCategories sort_method="SortCatFld::Sort">
<mt:SubCatIsFirst>
<ul>
</mt:SubCatIsFirst>
<li><a href="<mt:CategoryArchiveLink />"><mt:CategoryLabel /></a>
<mt:IfNonZero tag="categorycount">
<ul>
<mt:Entries>
<li class="page"><a href="<mt:EntryLink />"><mt:EntryTitle /></a></li>
</mt:Entries>
</ul>
</mt:IfNonZero>
<mt:SubCatsRecurse />
</li>
<mt:SubCatIsLast>
</ul>
</mt:SubCatIsLast>
</mt:TopLevelCategories>
<mt:Pages>
<mt:PagesHeader>
<ul>
</mt:PagesHeader>
<li><a href="<mt:PagePermalink />"><mt:PageTitle /></a></li>
<mt:PagesFooter>
</ul>
</mt:PagesFooter>
</mt:Pages>

ほげ山くん:ふむふむ。大きく分けて,2つのサブテンプレートに分かれるんですね。<mt:TopLevelCategories>と<mt:Pages>。

くれま先輩:その通りだね!<mt:TopLevelCategories>で最上位の親カテゴリからリストアップさせるでしょ。<mt:SubCatIsFirst>で<ul>の開始タグを出力,<mt:SubCatIsLast>で閉じタグを出力だね。

ほげ山くん:<a href="<mt:CategoryArchiveLink />"><mt:CategoryLabel /></a>の部分で,カテゴリーアーカイブページへのリンクを生成しているんですね。

くれま先輩:うん。で,その次の<mt:Entries>によって,カテゴリごとのブログ記事一覧を出力してる。<mt:TopLevelCategories>の中に<mt:Entries>が入れ子になっているから,そうなるわけだ。

ほげ山くん:「sort_method="SortCatFld::Sort"」は,藤本壱さんのカテゴリの並べかえのためのモディファイアでしたね。

くれま先輩:うんうん。グローバルナビゲーションの部分なんかと,カテゴリの並び順を合わせたいからねー。⁠sort_method="SortCatFld::Sort"」を入れておけば,管理画面で指定したカテゴリの並び順になるでしょ。

ほげ山くん:そうですね。

くれま先輩:あとは,<mt:Entries>の外側に<mt:IfNonZero tag="categorycount">があるのは,何のためか分かる?

ほげ山くん:ちょっと待ってください,それは前にもやったような…。あ,もしカテゴリ内にブログ記事が1件もない場合に,空の<ul></ul>を出力させないためでしたよね。

くれま先輩:うんうん。それで<mt:SubCatsRecurse />は,カテゴリの中にサブカテゴリがあるときに,階層化させて表示させるためのもの,だったよね。あとは,<mt:Pages>で,存在するウェブページを全てリストアップさせるようにしたら,このテンプレートは完成だよ!ページ下部の「保存と再構築」をクリックしたあと,右上の「公開されたテンプレートを確認」をクリックすると,出力されたページを見ることができるよ!

Google Sitemaps用のXMLファイルもMovable Typeで作成できる

くれま先輩:「サイトマップ」ってよく言うけど,実は検索エンジンにページを効率良くインデックスしてもらうためのXMLファイルのことも「サイトマップ」って言うのよね。

ほげ山くん:そうですよねぇ。Googleのウェブマスターツールのページに,色々解説が載ってますよね。

【参考ページ】
Google ウェブマスター ツール
https://www.google.com/webmasters/tools/docs/ja/protocol.html

ほげ山くん:先輩,このXMLファイルも,Movable Typeにテンプレートを追加して作成できそうな気がするんですけど。

くれま先輩:うん,そうだね!Movable Typeはテキストで表現できるファイルだったらCSVだってSVGだって書き出せるし,もちろんXMLファイルだって作ることは可能でしょ。だから,トータルWEBさんのサイトで解説されているGoogle Sitemaps用のXMLファイルの生成に,挑戦してみるといいと思うよ!

【参考ページ】
Google SitemapsをMovableTypeで自動作成 :ビジネスブログのホームページ制作
http://www.total-web.jp/technical/000064.php

ほげ山くん:おぉ。これはすぐにでもやってみたいですね!

くれま先輩:でしょ!ところでほげ山くん,次回でこの連載で必要なテンプレートが全部完成するって気づいてた?

ほげ山くん:そうですよね!そういえば!!

くれま先輩:というわけで,次回は最終回です!デフォルトの「最新記事のフィード」テンプレートを確認した後,サンプルサイトとテンプレートセットの配布に関してご紹介しますので,お楽しみに!

次回予告

  • 最新記事のフィードを確認する
  • サンプルサイトのご紹介
  • テンプレートセットプラグインのご紹介

著者プロフィール

黒野明子(くろのあきこ)

1973年生まれ。1995年 武蔵野美術大学短期大学部専攻科グラフィックデザインコース修了。

ファッションカメラマン事務所、広告系デザイン事務所、Web制作会社勤務を経て、2003年よりフリー。Webデザイン・企画を中心に、DTPデザインなども行う。

現在、武蔵野美術大学共通デザイン研究室非常勤講師及び株式会社デジタルスケープ・PreJOBトレーニング講師も兼務。2005年秋頃から業務としてMTサイトの構築を始め、現在の業務のほとんどでMovable Typeを使用している。

著書:

『CMSとして使うMovable Typeガイドブック』 (翔泳社、共著)

『Movable Typeプロフェッショナル・スタイル』(毎日コミュニケーションズ、共著)

URL:http://cremadesign.jp/