便利で優しい404ページをMovable Typeで使う

先日書いた PHPで作る『ちょっと便利で優しい404ページ』 用のURLをMovable Type 4.xのテンプレートで書き出す方法。

※WordPressに関しては、仕様を把握していないのでまた今度。

基本的な書き方

今回は『ブログ記事』『ウェブページ』の個別ページに加え、比較的使用頻度の高そうな『カテゴリー』『月別』おまけで『タグ』の例を書いています。

ただ、URLの数は少ない方が処理は速くなるので『カテゴリー』や『月別』などのアーカイブページが削れる場合は削った方が良いと思います。

URLを書き出す際 encode_xmlモディファイア で<、>、&をエンコードしています。

url_list.php

<?php
$urlList = array(

<mt:Ignore>ブログ記事</mt:Ignore>
<mt:Entries lastn="0">
    '<$mt:EntryPermalink encode_xml="1"$>',
</mt:Entries>

<mt:Ignore>ウェブページ</mt:Ignore>
<mt:Pages>
    '<$mt:PagePermalink encode_xml="1"$>',
</mt:Pages>

<mt:Ignore>カテゴリー</mt:Ignore>
<mt:Categories>
    '<$mt:CategoryArchiveLink encode_xml="1"$>',
</mt:Categories>

<mt:Ignore>月別アーカイブ</mt:Ignore>
<mt:ArchiveList archive_type="Monthly">
    '<$mt:ArchiveLink encode_xml="1"$>',
</mt:ArchiveList>

<mt:Ignore>タグ (当サイトの場合)</mt:Ignore>
<mt:Tags>
    '/tag/<$mt:TagName encode_xml="1"$>',
</mt:Tags>

);

比較文字列は短く

http://から始まる絶対URL(デフォルト)で書き出すと、必然的に文字数が多くなり若干速度が遅くなるので、少しでもパフォーマンスを上げるため replaceモディファイア を使って絶対URLをルート基点の絶対パスに書き換えます。

<mt:Entries lastn="0">
    '<$mt:EntryPermalink encode_xml="1" replace="サイトのURL","/"$>',
</mt:Entries>

URLを書き出すMTタグにreplace="サイトのURL","/"を追加するとURLが/に置換されます(<$mt:BlogURL$>だと置換されないのは処理順の問題?)

書き出し用テンプレート

replaceモディファイアを付与したバージョン。余分な改行が嫌いな方も以下のテンプレートを使うとサッパリスッキリします。

<?php
$urlList = array(
<mt:Ignore>ブログ記事</mt:Ignore
><mt:Entries lastn="0"
>    '<$mt:EntryPermalink encode_xml="1" replace="サイトのURL","/"$>',
</mt:Entries

><mt:Ignore>ウェブページ</mt:Ignore
><mt:Pages
>    '<$mt:PagePermalink encode_xml="1" replace="サイトのURL","/"$>',
</mt:Pages

><mt:Ignore>カテゴリー</mt:Ignore
><mt:Categories
>    '<$mt:CategoryArchiveLink encode_xml="1" replace="サイトのURL","/"$>',
</mt:Categories

><mt:Ignore>月別アーカイブ</mt:Ignore
><mt:ArchiveList archive_type="Monthly"
>    '<$mt:ArchiveLink encode_xml="1" replace="サイトのURL","/"$>',
</mt:ArchiveList

><mt:Ignore>タグ (当サイトの場合)</mt:Ignore
><mt:Tags
>    '/tag/<$mt:TagName encode_xml="1"$>',
</mt:Tags
>);

まとめ

  • URLリストは少ない方が速い
  • アーカイブページを削るのも手
  • 文字数も少ない方が良い
  • replaceモディファイアでパス書き換え

Comment(0)

Post your commnet

Trackback(1)

Trackback URL
Permanent link
404エラーページに似ているURLを表示させるためのテンプレット
404エラー時に似ているURLを表示するというPHPのスクリプトを書いてみました。テンプレットとしてダウンロードもできます
From チバのブログ [2008/09/05-15:21]

Recent Entries
Category
Archives
Tag Cloud
あわせて読みたいブログパーツ