昨日書いた方法では片手落ちというか色々と問題がありました。
コメントで教えていただいたことを基にあらためてやり直してみました。
問題点は
- 検索結果ページはpealで書かれているのでPHPは動作しない。
- include(‘相対パス’)の方が良い。
1は昨日のエントリーへのうかさんのコメントで解決。
とりあえず個別のエントリーはinclude、それ以外は直接モジュールで書き込みという方法をとることにしました。本当はトップページやアーカイブページもincludeできそうなのですがMTIfの使い方が良くわかっていないので無理はしないことにしました。
2もエントリーページだけなら階層は1種類なので相対パスで指定することに。
以下手順
手順1 HTMLファイルをPHP化
includeを使うにはページをPHP化(拡張子を.phpに)しなければいけませんが、ファイル名の変更はしたくないので.htaccessを使いました。
新規テキストに
AddType application/x-httpd-php .html
と書き適当な名前で保存。FTPでブログと同じディレクトリにアップロード後ファイル名を「.htaccess」と 変更。
これで拡張子が.htmlのままでもPHPが使えます。
手順2 新規テンプレートモジュールを作成
管理画面から デザイン >テンプレート を選択。
右側のクイックフィルタからテンプレートモジュールを選択
「モジュールテンプレートを作成」をクリックすると「テンプレートを作成」になります。
テンプレート名を適当につけ、読み込むファイルのソースを書きます。
こんな感じ。
<div id=”footer”>
<a href=”../../”>(c)aki-f.blog</a>
</div>
ここからポイント
「ファイルへのリンク」欄にこのモジュールを保存するディレクトリとファイル名を記入します。ディレクトリ名の記入は任意ですが、後でわかりやすいので付けて置いたほうが良さそうです。
(ディレクトリを指定しなければブログのあるフォルダの直下に保存されます)
で、保存をポチっとクリック。
手順3 フッターモジュールを改変
さて、大詰め。
フッターモジュールをからインクルードする部分を書き換えます。
<MTIf name=”entry_template”>
<? include(‘../../templ/footer.php’); ?>
<MTElse>
<$mt:Include file=”templ/footer.php”$>
</MTIf>
MTIfでentry_templateならinclude、それ以外なら直接書き込み。 <$mt:Include file=”○○”$> を使うのがポイントみたいです。
最後にすべて再構築これでエントリーページのフッターはPHPで読み込みされるようになりました。
++
昨日の書いたことは失敗で結局記事を削除してしまう失態になりましたが、結果的に僕にはプラスになりました。
「郷にいれば郷に従え」といいますか、MTにはMTの流儀があってそれに従った方が良さそうだということと、とりあえずブログに書いたことが情報を得るきっかけになったこと。
「教えたつもりが教えられ」
勉強になりましたm(__)m
$key="Movable Type PHP"?>
- 執筆者: a-ki
- 最終更新日: 2019/02/02
コメント
うまくいったようで何よりですw
「ファイルへのリンク」ですが、ローカルでいつも使っているエディタで加工⇒FTPでアップロードしただけでテンプレに内容が反映される(とはいえ再構築は必要)ので、かなーり重宝してます^^
>うかさん
これなかなか便利な機能ですね。
説明がないと何のことかさっぱりわかりませんでした^^;
MT3 → MT4にしました
いろいろあきらめまして、 Movable Typeのバージョンアップを行いました。 デフォルトのテンプレートにしないと機能しない機能はあるし・・・。 かな…