スポンサーサイト

2013.09.14 Saturday by スポンサードリンク|-|-|-

一定期間更新がないため広告を表示しています

共通部分をモジュール化

1970.01.01 Thursday 08:59 by abetomoMovableType|-|-

すっかり連載のようになってしまったMovableType構築記の続きです。

そもそもサイドメニューなどの共通部分をインクルードしたくてPHP化することにしたのだ。ここからがカスタマイズの本題なのである。


前回こんなこと言ってたんだけど、またしてもつまづいてしまった。

<? include("/xxx/sidemenu.php");?>のような感じでアーカイブテンプレートにインクルードを記述して再構築しても、アーカイブページにはさっぱり表示されないのだ。

パスの設定(/xxx/のところ)が間違っているのかと思っていろいろ試してみたけど、フルパスにしても相対パスにしてもやっぱり表示できない。インデックス・テンプレートのアーカイブの拡張子をphpに変えてもダメだった。

ならばメインページはどうか?と、メインページのテンプレートに記述して再構築したら、ちゃんと表示できた。ということは、sidemenu.php自体はちゃんと構築できているらしい。

そこでMTInclude moduleでアーカイブテンプレートに記述してみると、今度は表示できた。まあ、これはPHPじゃなくても使えることは確認していたので当然だろうけど。

これはどういうことかと調べてみると、「ダイナミック・パブリッシング導入法」(HINAGATA)に、こんなことが書いてあった。

PHPなどで外部ファイルをインクルードしていると、そのままでは動的に生成できません。外部ファイルをインクルードしたい場合は、MT管理画面のテンプレート管理の一番下にあるテンプレート・モジュールでモジュール化し、以下のようにしてインクルードします。


あれ〜?もしかして、PHP化することと、ダイナミック・パブリッシング機能を使えるようにすることって別なのか??PHP化=ダイナミック・パブリッシングだと思っていたんだけど、PHPインクルードにするには拡張子を「php」に変えるだけで良かったのか?

ダイナミック・パブリッシングを導入するとき、再構築オプションで「アーカイブのみダイナミック」を選択したんだけど、ということは、メインページはダイナミック生成をしていないからPHPインクルードが使えて、アーカイブページはダイナミック生成をしているからPHPインクルードが使えない、ということなんだろうか。

よく分からないけど、きっとそうなんだろう。

ダイナミック生成をする限り、結局MTIncludeを使ってインクルードするしかないらしい。まあ、PHP化したおかげで、テンプレート・モジュールでモジュール化した部分を更新すれば即反映されるようなので、別にMTIncludeでもいいんだけど(スタティック生成のときは、再構築しないと更新した内容が反映されなかった)。

というわけで、メインページだけPHPインクルードにしても仕方ないので、共通部分のインクルードにはMTIncludeを使うことにしよう。あとはカテゴリページの分割か。

スポンサーサイト

2013.09.14 Saturday 08:59 by スポンサードリンク|-|-|-


profile

最近の記事

写真たち

abetomo
携帯百景 - abetomo
www.flickr.com

息子の本棚

カテゴリ

アーカイブ

最近のコメント

  • はじめての運動会
    sea
  • 育児の悩み:トイレトレーニング編
    Horka
  • ナナン、落ちる
    sea
  • 明日は入園式
    abetomo
  • 息子、突発性発疹にかかる
    突発性発疹.com
  • 1歳になりました
    abetomo
  • 1歳になりました
    abetomo
  • 生後10ヶ月
    abetomo
  • 怒涛のように過ぎた8月
    abetomo
  • 怒涛のように過ぎた8月
    abetomo

リンク

search this site.

others

sponsored links

powered

無料ブログ作成サービス JUGEM