PHP化とページ分割。
カテゴリアーカイブと月別アーカイブはさくっとできたのですが、個別アーカイブをPHP化するのには、かなーりてこずりました。もう駄目かと思ったよー。orz
さてさて、その手順をメモメモ。
カテゴリアーカイブと月別アーカイブのPHP化及びページ分割は、例によって 小粋空間 さんの ●カテゴリーアーカイブと月別アーカイブのページ分割 を参照しました。
ありがとうございました。^^
- ページ分割を行うためのプラグイン:MTPaginate 1.24を MT Extensions よりDL。(ページの上の方のDownloadより)
- 解凍してできた MTPaginate.pl を MT のプラグインフォルダへアップロード。
- MTの管理者画面から、アーカイブの設定を変更。
『ウエェブログの設定』⇒『アーカイブの設定』を開き、 Date-Based Archive のアーカイブ・ファイルのテンプレートの部分に <$MTArchiveDate format="%Y_%m"$>.php Category Archive アーカイブ・ファイルのテンプレートの部分に cat_<$MTArchiveCategory dirify="1"$>.php を設定し保存。
ここまでできたらほぼOKで、後は下記のようにページ番号の設定を各テンプレートに行い完了。(青字部分を追加)
<div class="blog">
<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>
</div>
上記で、スタイル設定のための”paginate”というクラスが付与されているので、下のようにスタイルシートに追加して見映えを整えます。
.paginate {
font-family: Verdana, Arial, sans-serif;
color:#666666;
font-size:9px;
}
さあ、ここまでは何なくできましたね、みなさん。(笑)
続いて、個別アーカイブもPHP化しちゃいます。
個別アーカイブのPHP化で一番大きな問題は、個別エントリーのURLが変わってしまうということ。
つまり、トラックバックを受けたエントリーのURLが変わるので、そいつをクリックしてページへ飛んできた人に404エラーを見せてしまうということなんすよねー。それだけじゃなくて、検索エンジンに拾われたURLも同じ状態になってしまう。。。
まぁ、カテゴリアーカイブや月別アーカイブに関しても同じことなんですけど、こっちはまだ実害が少ないので良しなんですがね。(笑)
で、そいつを回避する方法として、htaccessファイルを使用する方法があります。
つまり、無理やりリダイレクトさせてしまうと言うことですね。
以下、そのやり方も含めて個別アーカイブのPHP化メモメモ。
CROSSBREED さんの MTのPHP化とページ分割 というエントリーと、pebbleinsky’s blog さんの PHP化+MovableType3.0へアップデート。 というエントリーを参照させていただきました。
ありがとうございました。m(__)m
- MT管理画面のテンプレートの編集からMainIndexとMasterArchiveIndexを開き、出力ファイル名をそれぞれIndex.phpとarchives.phpに変更して保存。
- 『BLOGの設定』⇒『ウェブログの設定』内のアーカイブファイルの拡張子をPHPにして保存。
- 『BLOGの設定』⇒『アーカイブの設定』内のIndividualの欄に<$MTArchiveDate format="%Y/%m/%d_%H%M"$>.phpと入力して保存。
※注意※
絶対にここで再構築を行わないでください。ここで再構築を行ってしまうと、リダイレクト設定のための元のファイル名が変わってしまいます。
続いてhtaccessファイルを作成します。
- MTの管理画面より『テンプレート』⇒『新しいインデックス・テンプレ・・・』をクリックし、以下のようなテンプレートを作ります。
・テンプレートの名前htaccess(任意の名前でもOK)
・出力ファイル名
htaccess.php
・テンプレートの中身(青字部分はそれぞれの環境によって変わってきます。)
<MTArchiveList archive_type="Individual">
Redirect permanent /blog/archives/<$MTArchiveDate format="%Y/%m"$>/<MTEntries><$MTEntryPermalink$></MTEntries> <$MTBlogURL$>archives/<$MTArchiveDate format="%Y/%m/%d_%H%M"$><MTEntries><$MTEntryKeywords dirify="1"$>.php</MTEntries>
</MTArchiveList>
オリジナルでは、<$MTEntryPermalink$>が<$MTEntryID pad="1"$>.htmlとなってり、最初、こいつをそのまんま使ったのですが、全然うまくいきませんでした。なので、無理やり<$MTEntryPermalink$>タグを使って、ダイレクトにURLを生成させ、エディタで若干の修正を行うようにしました。 - ここで全てを再構築します。
index.phpを見ることが出来たら、アーカイブのPHP化は完了です。
後は、MTのディレクトリに生成された htaccess.php ファイルを適当なエディタで開いて中身を確認。
私が上記で作成したテンプレートの内容だと、パーマリンクから生成しているので余計なURLの文字列が入ってしまうので、こいつを削除して修正を行いました。
もっとうまいやり方があるんでしょうけど、何分にもスキルが無いのでなるたけオリジナルを変更しませんでした。腕に自身のある方はもっとうまくやれると思います。
私の場合、ここでかなーりつまづきました。(苦笑)
これで、個別エントリーのリダイレクト設定がされたので、後は手書きでカテゴリアーカイブと月別アーカイブのリダイレクト設定を挿入。
こんな感じ。
▽個別エントリーのリダイレクト▽
Redirect permanent /blog/archives/2004/09/a1402sa1402s.html http://www.garaku.cc/blog/archives/2004/09/24_1632.php
Redirect permanent /blog/archives/2004/09/_srank.html http://www.garaku.cc/blog/archives/2004/09/24_1020.php
:
:
:
▽カテゴリアーカイブのリダイレクト▽
Redirect permanent /blog/archives/01/index.html http://www.garaku.cc/blog/archives/01.php
Redirect permanent /blog/archives/02/index.html http://www.garaku.cc/blog/archives/02.php
Redirect permanent /blog/archives/03/index.html http://www.garaku.cc/blog/archives/03.php
:
:
:
▽月別アーカイブのリダイレクト▽
Redirect permanent /blog/archives/2004/01/index.html http://www.garaku.cc/blog/archives/2004_01.php
Redirect permanent /blog/archives/2004/02/index.html http://www.garaku.cc/blog/archives/2004_02.php
Redirect permanent /blog/archives/2004/03/index.html http://www.garaku.cc/blog/archives/2004_03.php
:
:
:
修正が終わったら、ファイル名を .htaccess へリネームし終了。
以上っす。
何だかわかりにくくてすんません。(汗)
こんにちは!おかげ様で無事PHP化が終わりました♪
でも立ち上げにはまだまだかかりそうなので、現行のブログにリンク&トラバさせて頂きました。新しい方にもリンクを張らせて頂きますが、サイトが立ち上がるまでこちらでお願いします。また色々教わりにお邪魔させて頂きます!
>マオさん
新しい方、楽しみにしてまーす。^^
はじめまして。
PHP化で教えてください。
リビルドのカテゴリーページのリビルド中、
Error in tag: 日付以外の場所では、タグ MTArchiveDate を利用できません。
というエラーが出ました。。。
ウェブログの設定→アーカイブの設定
カテゴリーアーカイブのテンプレート=.php
月別:日付アーカイブのテンプレート=cat_.php
の記入で合っていますよね?
MTのバージョンは3.151-jaです。
連続投稿になってしまいすみません。
カテゴリーページ以外はリビルドはうまく行き、phpでの表示ができました。
カテゴリーページのみphp表示ができません。。
他に間違っていると思われる要因があれば、教えてください><
>HITOMIさん
はじめましてー。^^
えっと、サイトを見ていないので何とも言えないのですが、おっしゃっているようなエラーの場合、PHP化とはあまり関係なくて、MTの独自Tagの置き場所が違ってたりすることが多いです。
でですね、MTArchiveDate というタグですが、MovableTypeのマニュアルによると、”このタグはMTArchiveListの内側と、date-based アーカイブの中の MTEntries の 外側 で使うことができます。アーカイブのページに、日付をヘッダとして表示したいときに使います。例では「月 年」を表示します。”という風に書いてありますので、このルールにのっとって使われてないとエラーではじかれると思います。
→ http://www.movabletype.jp/manual/mtmanual_tags.html
ちなみに、私、このタグを使用していないので、どのような感じで使われるのかちょっとわからないのですが・・・。
差し支えなければ、メールフォームからでも、サイトアドレスとカテゴリページのテンプレートを送ってください。遅くなりますが、見てみますので。^^
Border.様>
メールを送らせていただきました。何卒よろしくお願いします。
ありがとうございました!!できました☆
お手数をおかけしました(o*。_。)o
>HITOMIさん
良かったでーす。^^
ご迷惑をおかけしました。
こんばんわ Border.さん
いつもお世話になってます。どうしてもページ分割をしたくなり、以前からPHP化したかったのですが、難しそうであきらめていました。もっと早くやっておけばよかったのかな~。
今回も助けて頂きました。(あいかわらず、失敗もしました。。。)
ありがとうございました!
>tsukinoさん
お疲れ様です!
いやはや、ご苦労なされたようで。
でも、失敗は成功の元ですから。(笑)
言葉足らずのエントリーで申し訳ございませんが、また参考にしてやってください。m( _ _ )m
お引越し作業中
ここ数日集中してPCの前にいるので
PCから離れると一気に気が緩んで危険です。
車乗っててもボーっとしてるし。
まぁその理由っていうのが
ここでも何…
分割をやろう。
異常に多い、TEAM-NACS関連のエントリー。 どうにかしようと思いページ分割…
Movable Typeをphpに
さてMTのphp化の手順ですが、…
PHP化をさくらのサーバーで
PHPをCGIとして動かすサーバーなので パーミッションが644とかだとインター…
[MTカスタマイズ]メモ
■ページ分割 cocoons.org*:TOPページでもページ分け http:/…
[u*] アーカイブをPHP化
参考にさせていただきました! PHP化とページ分割。†††我楽 カテゴリーアーカ…