見出しのような語句で検索して来た人がいたっぽいので、アーカイブの分割にちょこっと手を加えただけのモノですが、公開してみようと思います。このままでは動きませんが、Category Archive などの MT のテンプレートとして登録し、リビルドすればたぶんオーケー。

<?php
  define("LENGTH", 20);  // ペーヂあたりの表示件数

<MTEntries sort_order="ascend">
$entry[] = '<a href="<$MTEntryPermalink$>"><$MTEntryTitle></a>';
</MTEntries>

  $offset = preg_replace("#.*[\\/]#", "", $_SERVER[PATH_INFO]);
  $offset = preg_match("/^(\d{1,3})$/", $offset, $m) ? $m[1] : 0;

  header("Last-modified: " . gmdate("D, d M Y H:i:s", filemtime($_SERVER[SCRIPT_FILENAME])) . " GMT");
  header("Content-language: ja");
  header("Content-type: text/html; charset=UTF-8");
?>
<? readfile("/****/public_html/mt/inc/Header") ?>

<title><$MTBlogName$>: <$MTArchiveTitle$></title>
</head>
<body id="archives">
<div id="content-header">
<h1><$MTArchiveTitle$></h1>
</div>

<ul class="navigation">
<li class="navi-main"><a href="<$MTBlogURL$>">Main</a></li>
</ul>

<div id="content-main">
<h2>category: <$MTArchiveTitle$></h2>
<div class="article">
<p class="page">page:
<?php
  $page = 1;
  for ($i = 0; $i < count($entry); $i += LENGTH) {
    $hoge = $i;
    if ($i == $offset) {
      printf("<em title=\"現在のページ\">%02d</em>\n", $page);
    }
    else {
      print "<a href=\"$_SERVER[SCRIPT_NAME]/$i\">";
      printf("%02d",  $page);
      print "</a>\n";
    }
    $page++;
  }
?>
</p>

<ul id="category-list">
<?php
  if (empty($offset)) {
    $offset = 0;
  }

  for($i = $offset; $i < $offset + LENGTH; $i++) {
    if (isset($entry[$i])) {
      echo "<li>$entry[$i]</li>\n";
    }
  }
?>
</ul>
</div>
</div>

<div id="content-footer">
<ul class="navigation">
<li class="navi-main"><a href="<$MTBlogURL$>">Main</a></li>
</ul>
<? readfile("/****/public_html/mt/inc/address") ?>

</div>
</body>
</html>

readfile() で読み込んでいるのはヘッダとかフッタっぽいファイルです。ファイル内に XML 宣言があると、inlude() とか require() でエラーが出るかもしれないので注意なのです(PHP の設定ファイルの書き換えが必要らしい)。

つーか別のファイルに書き出してアプすれば善かったような。長すぎる。

そういえば xrea って、text/html なファイルを勝手に gzip して発射してくれるようになってたんだよな。大体 70 ~ 50% くらいに圧縮されているので、転送量を気にするならこういうサバではあまり意味がないかもしれず。