本文へ
Crossbreedクロスブリード

ホーム / ネット文化 / MTのPHP化とページ分割

Movable Type

MTのPHP化とページ分割

カテゴリページのスクリーンショット

以前から懸念していたpermalink(個別記事へのリンク)のIDの件でやろうやろうと思っていて中々手がだせずにいたphp化及びカテゴリページのページ分割を完了させた。

やり方はいろんな方がいろんなやり方をされていて非常に迷った。
permalinkもphp化するのは凄く迷ったけど、すべての記事を.phpにすることにした。それと、長くなりすぎるカテゴリページをいくつかに分割することにより、表示を軽くしてみた。

以下にやり方を書いていこうと思う。ま、興味ある方だけ。
スポンサードリンク

アーカイブファイルのphp化

> php化をするに当たって個別記事のファイル名を変えることにした。デフォルトの「00000.html」の形式だと、後々サーバ移転等の際に再構築するとファイル名が変わってしまうからだ。

というわけで、MTの管理画面→BLOGの設定→ウェブログの設定

で、アーカイブファイルの拡張子を「php」にする。アーカイブの設定で、ファイル名の設定をする。

「アーカイブファイルのテンプレート」というところに然るべき記述をすると、リビルドしたときに任意のファイル名で書き出してくれる。MTって便利ですね。

やり方の例。

.php

こうすると、200401231400.phpのように、投稿した日付時刻でファイル名が出来る。

<.php>

なかにスラッシュを入れることによりディレクトリを生成することができる。

200401/24-1400.php ← こんなカンジ

また、エントリキーワード(エントリ画面のカスタマイズをすることにより出現する)を入力することにより、そのキーワードが入ったファイル名を生成することも出来る。

.php

例えばキーワードに「mario」を入れておくと、

200401/24-1400mario.php ← こんなカンジで。

ここで問題が出てきた。元の00001.htmlというファイルが無くなる訳だから、GOOGLE等で検索で飛んできたヒトは404エラーになるという事。実はこれが原因でなかなかPHP化できなかった。
.htaccessにリダイレクトの記述をすれば良いのは分かってたけど、膨大な過去ログを一つ一つ記述するのは大変なのでやりたくない。

で、色々探してたらあった。
ARTIFACTさんで詳しい解説が。

htaccessのRedirect permanentを利用して、旧URLにアクセスした場合、新URLに飛ぶようにしました。
「Templateの編集」⇒「新しい Index Template を作る」
で下記テンプレートを追加、「Index Template を Rebuild するときに自動的にこの Template を Rebuild する」にチェックをいれ、適当なファイルネームで生成、それでできたファイルの内容を.htaccessファイルに追加します。


Redirect permanent /mt/archives/

.html

mt/archives/
/

.html

もう目から鱗落ちまくり

どういうことかというと、httaccessに記述すべきものが一瞬にして出来上がる。

Redirect permanent /archives/000420.html https://cross-breed.com/archives/200401241610.php

これで全てのアーカイブをリビルドしてオワリ。

カテゴリアーカイブの分割

まず、MT Extensions: MTPaginate 1.2.2
↑ここでプラグインをDLします。解凍して /plugin/ にアップロード。

これで準備はOKです。次にカテゴリテンプレートを開き、以下のようにタグを追加です。




◀


▶


◀
▶



(中略)



◀


▶


◀
▶



これで良いはずです。完成すると↓カテゴリページがこんなふうに分割されてるはずですよ。

カテゴリページのスクリーンショット

カテゴリ分割を入れたのはいいのですが、ウチは

カテゴリページへのアクセスがほとんどないという罠(泣

【04/05/26 追記】 ちなみに、MTPaginateContent max_sections="8"というタグは 「8つ以上のエントリがあったら分割しますよ」 というものです。 スポンサードリンク

※このサイトはさくらインターネットのサーバを利用しています。

■gi(ギィー)福岡浄水通りの絣(かすり)と手作り雑貨のセレクトショップ
↑サイト内紹介記事
【PR】BTOパソコンの先駆者 FRONTIER

読者のコメント24件

記事が公開された当時に寄せられたものを、そのまま残しています。受付は終了しました。

  1. akio

     すいません・・・。トラックバックが何度も送られてしまったようです。削除しておいて下さい。申し訳ございません。

  2. sharaku

    こちらの記事を参考にさせていただきました。
    トラックバックを送ったのですがうまくいかなかったので
    こめんとで失礼します。どうもありがとうございました。

  3. 管理人ayu

    >akioさん、sharakuさん
    参考になったようで何よりです。今後ともよろしくです。

  4. junichi_y

    はじめまして。Diary::Weblogです。
    非常に参考になりました。
    感謝感激でございます。
    が、お恥ずかしい事にTBが2回飛んでおります。
    削除お願いいたしますー。

  5. bonta

    はじめまして、knotのbontaと申します。
    参考になりましたっ。
    それで記事を書いてよーしトラックバックだ…と思ったら2回飛んでしまいました。
    削除お願いします…お手数かけます…

  6. hwp

    こちらの記事、とても参考になりました。
    私もPHP化して軽くしてみようかと思いはじめました。

    で、上のコメントの方と一緒で大変申し訳ないんですが、
    トラバ送信時にエラーが発生して2度送信されているかと思います。
    お手数かけますが、削除お願いします。

  7. まんぼう

    まんぼう亭のまんぼうと申します。
    大変参考にさせて頂きました^^

    でも、トラックバック3つも飛んでます(汗
    削除お願い致します^^;

  8. 半兵衛

    質問です

    Category Archiveの「アーカイブ・ファイルのテンプレート」に
    <$MTArchiveCategory dirify=”1”$>.php(半角で)
    記入する全角のカテゴリー名だと不具合が生じます
    しかしここの「新婚旅行物語」などはc_travelになっているのは、キーワードによりフォルダ名をつけることで解決してるのかと予想しています

    分からないのは、そのキーワードの付け方です
    エントリ画面のカスタマイズはどのように書いたのでしょうか?

    お暇な時にでもお答えくださればありがたいです

  9. 管理人ayu

    >半兵衛さん
    ええと、ファイル名はそれでよいです。新婚旅行物語の場合は、

    カテゴリ名:travel
    カテゴリの説明:新婚旅行物語

    としてます。

    そして、実際にメニュー等に表示したい場合は

    MTCategoryDescription

    というタグで表示を行っています。これはカテゴリの説明を表示するものです。これで、日本語によるカテゴリ名が実現します。

    ただ、もうひとつ方法があるんです。こちらの方法は近日中に記事にするつもりでしたので、もう少しお待ち下さい。

  10. 満月

    こんにちは、はじめまして。
    こちらを参考にして、php化を考えており、
    まずテストサイトでやってみましたが、
    .htaccessの所で躓いてます。飛ばない。
    だいたいみなさん、
    00001.htmlみたいな連番が出来てるんですか?
    うちは、post_05.htmlみたいな感じです。
    タイトルに英数字が入ると、それを利用したファイル名になるし…。
    はぁ、もうちょっと頑張ってみますわ。

  11. 管理人ayu

    >満月さん

    0001.htmlはMT2.6以前のファイル名の連番です。
    3でも連番にできますが、デフォルトではpost_05.htmlのようになるようですね。

    要は

    Redirect permanent (旧ファイル) (新ファイル)
    のようになれば良いのですが。

    僕は2からのテンプレをそのまま使ってるので問題ないんですが、ファイル名に自動的にキーワードができるなんて知りませんでした。

    こちらでも調べて見ますね。

  12. 満月

    管理人さん、お返事ありがとうございます。

    > デフォルトではpost_05.htmlのようになるようですね。
    そうなんですかー。
    ココログから移行したのが原因かな? と、
    質問した後に思ったんですが、なるほど。

    > Redirect permanent (旧ファイル) (新ファイル)
    実はその後、そのように手作業で移行しました。
    100件強あったので、結構大変でしたけど。

    このあと、分割とか色々やりたいと思います。
    また参考にさせて頂きますね。

  13. せにょ

    はじめまして、「だるせ~にょ」のせにょと申します。
    ページ分割の記事、大変参考になりました。ありがとうございました!!

  14. 管理人ayu

    お役に立てたようで。ダラダラと書いた甲斐があるってもんですよ。

  15. 名前なし

    はじめまして。
    この記事を参考にPHP化に挑戦しました。
    リダイレクト用のファイル作りに手こずりましたが、うまくいきました。
    次はページ分割をやってみようと思います。ありがとうございました。

  16. Sho

    はじめまして。
    この記事を参考にPHP化に挑戦しました。
    リダイレクト用のファイル作りに手こずりましたが、うまくいきました。
    次はページ分割をやってみようと思います。ありがとうございました。
    (すみません。ひとつ前のコメントに名前が表示されていないので、再投稿しました)

  17. 管理人ayu

    >shoさん
    おめでとうございます!

    リダイレクトの部分は今のさくらのサーバではhttaccessが自由に弄れないので実現できていないんですよ実は。なので諦めています。

  18. showBOO

    重ね重ね、参考になりました。
    ありがとうございました。

  19. 管理人ayu

    参考になったようで、良かったですー。

  20. みりぃ

    初めまして。
    今回blogをphp化するためにコチラの記事を拝見しお勉強させていただきました。
    ありがとうございました(^^)
    次はページ分割にも挑戦してみようと思っております。

  21. 管理人ayu

    >みりぃさん
    このphp化とページ分割がMTカスタマイズの第一歩だと思います。頑張ってください!

  22. tsukino

    はじめまして tsukinoと申します。
    ページ分割をするため、PHP化しなくてはいけなくなり、こちらへ検索してたどり着きました。
    手順を調べながら、ふと、嫁との会話タブが気になり、読み始めていっき読みしてしまいました。
    なんとなくayuさまのキャラクターを実弟と重ねてしまい、うんうん、、、とうなずきながら読んでしまいました。
    どうぞこれからもよろしくお願いします。

  23. Brandon B.

    たまに来ますのでよろしくお願いします。

  24. Charles A.

    たまに来ますのでよろしくお願いします。