便利で優しい404ページをMovable Typeで使う
- 2008/09/01 - 09:00
- Movable Type , PHP/MySQL
- 404 , Template , URL
先日書いた 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モディファイアでパス書き換え
Trackback(1)
- Trackback URL
- Permanent link
- 404エラーページに似ているURLを表示させるためのテンプレット
- 404エラー時に似ているURLを表示するというPHPのスクリプトを書いてみました。テンプレットとしてダウンロードもできます
Comment(0)
Post your commnet