web関係

php化&ページ分割

投稿日:2005年9月13日

最近、エントリーが増えてきたのでカテゴリーごとに表示すると長ったらしいページになってしまっていたので、ページ分割をやってみました。
しかし、その前にhtmlファイルをphp化しなきゃいけない・・・ってんでどうにも腰が重かったんですが。
やってみたら簡単でした。(汗)

先ずファイルのphp化。

これはテンプレート→インデックステンプレートから出力ファイル名を

index.html→index.php
archives.html→archives.php

にして「ウェブログの設定」→「設定」→「アーカイブの設定」でアーカイブファイルの拡張子を「php」にしてリビルド。
これで完了です。

で、古いhtmlファイルを削除すればいいのですが・・・。

そうすると、検索(Google)等で飛んできた人には404エラー(File not found)が出ちゃうんですなぁ。

その対処策として、.htaccessでリダイレクトさせるというのがいろいろなサイトで紹介されていて一般的な方法のようです。

Redirect permanent /archives/xxx.html http://blackdog.7days.tv/inubl/archives/yyy.php
というのを個別ファイルごとに書くのですが、170ぐらいのエントリーがあるのでいちいち書いていては面倒です。

そこで下記のような方法が紹介されていました。

テンプレート→インデックステンプレートから『新しいインデックステンプレートを作る』を選びます。
名前は何でもいいので僕はhogeにしました。
出力ファイル名はhoge.phpにします。
テンプレートの中身は以下のようにします。

<MTArchiveList archive_type=”Individual”>Redirect permanent /archives/<MTEntries><$MTEntryID pad=”1″$>.html</MTEntries> <$MTBlogURL$>archives/<$MTArchiveDate format=”%Y/%m/%d_%H%M”$><MTEntries><$MTEntryKeywords dirify=”1″$>.php</MTEntries>
</MTArchiveList>

『インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する 』にチェックを入れリビルドします。
出来上がったhoge.phpファイルを見ると、ファイル名がズラーっと並んでいるので、これを.htaccessにコピー→アップロード。

これで、古いhtmlファイルにアクセスがあった場合でも新しいphpファイルに飛ぶはずだったんですが・・・。

404エラー続発。(涙)

なんだかんだやってみても全然飛ばない・・・。

で、.htaccessをよーく見ていたら、元のhtmlファイル名が000120.htmlとかになってる。
うちの場合、ほとんどのファイルがpost_120とかいう名前がついてる。
あるいは半角英数をタイトル名に使ったエントリーはそれがファイル名になってる。
要するにバラバラ。
なので、バックアップ用に取っておいたhtmlファイルとphpファイルを見比べて全て手作業で書き換えました。
アホだ。疲れた。

しかし!それでも飛ばない!

あーあ・・・もう限界。。(´;ω;`)

しばらくして、絶対パスの指定ミスだという事に気づきました。
何年HP作ってるんだよ・・・。

次にページ分割です。
プラグインMT Extensions: MTPaginate 1.2.2をダウンロードして、解凍しpluginディレクトリにアップロード。
さらにカテゴリーアーカイブに以下を追加。

<div class=”content”>

<MTPaginate>
<MTPaginateContent max_sections=”8″>

<MTEntries>

(中略)

<$MTPaginateSectionBreak$>

</MTEntries>

</MTPaginateContent>
<div align=”center” class=”paginate”>
<MTPaginateIfMultiplePages>
<$MTPaginateNavigator style=”links” format_all=”All pages” place_all=”after” separator=” | “>
</MTPaginateIfMultiplePages>
</div>
</MTPaginate>

きままにポロポロさんにくわしい事が書かれてますので是非ご参考に。

-web関係
-


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

HTMLファイルをPHPとして動かす

こちらを見て思い出したのですが。 .htaccessで、拡張子.htmlのままPHPを実行する方法 …

MTアップグレード

MovableTypeを3.2から3.33にしました。 ディレクトリを変えたりしたので、疲れました。 …

ThickBoxのせいでvalidにならなかった件

あるサイトでXHTMLvalidにならず悩んでいたのですが、エラーをよく見ると全てThickBoxの …

Photoshopで自動処理

画像を何枚もリサイズしてブログに載せたりする時、一枚ずつリサイズしたり、カラー設定を変えたりするのっ …

カスタムフィールドプラグイン「Smart Custom Fields」を使ってみた

WordPressはいろんなことができますがCMSとして使うにはデフォルトの設定ではちょっと使いづら …

カテゴリー

アーカイブ

サイト内検索