MT5.2.2 記事がないカテゴリアーカイブを出力させる方法

MT5.22ではカテゴリを作っても記事が無いとカテゴリーページ自体出力されない仕様になっています。なので、ページがないのに先にカテゴリーを作ったり、サブカテゴリーだけしか記事がなかったりすると、カテゴリーページが出力されないのです

それを避けるための回避方法がありました
ブログ記事がないカテゴリアーカイブが出力されない(MT5.2.2)



私がやった回避方法は

Movable Type 5.2.2のlib/MT/ArchiveType/Category.pmで、166行目を以下のように書き換えます

MT::ArchiveType::archive_entries_count( $obj, \%params );



return 1;

に書き換えるだけでうまくいきました。

でも、もしかしたらなんかしらの不具合が出る可能性があるので自己責任でどうぞ。バックアップも忘れずに

MT5 タグクラウドの一覧が表示されなくなった

MT4からMT5にバージョンアップさせたのだが、タグクラウドの一覧が表示されなくなっていた。気がついたのがすでに半年が過ぎていた。。。全てのサイトのリンクチェックなんてしてられないので、全然気が付かなかった。


さて、ググっていろいろ調べたが何をどうやっても表示されない。もちろん、解決方法があるのだろうが、答えが出てこない。かれこれ2時間…


そして、やっとこさ解決することができた。


:まず、デザイン>>テンプレートに行く
・右側からテンプレートの初期化を選択
・「テーマテンプレートの変更の取り消し」を選択し、その時必ず「既存のテンプレートのバックアップを作成する」も選択
・テンプレートが初期化されると、デフォルトのテンプレにされてしまうのでバックアップで今までのテンプレに直す
・テンプレートのシステムテンプレートに「検索結果」が作られる
・このテンプレをコピーする。
・今まで検索の結果を表示させていたテンプレート(私の場合はSearch Template)を開き、バックアップを取る。
・「検索結果」をコピーし、Search Templateにペーストする。


これで表示されるようになりました。


このままだとデフォルトのテンプレになるので、HTMLが分かる人は使っているテンプレに書き換えると完璧です。


注意:たぶん、、というか絶対もっと簡単な方法があるんだと思いますが、私はこの方法しかわかりませんでした。



MTタグをエントリーに埋め込む MT5

MT5では標準でグローバルもディファイア「mteval」が実装されているので、簡単にMTタグをエントリー(ブログ本文)に埋め込むことが出来ます。


私は長くムーバルタイプを使ってきましたが、6年目にしてエントリー内にMTタグを埋め込めないことを知りました。びっくりデス。


デザイン>テンプレート>アーカイブテンプレート>ブログ記事



エントリーを呼び出すMTタグ。FireFoxやGoogle chromeなら検索を使うと簡単にタグが見つかります。



<$mt:EntryBody$>

<$mt:EntryMore$>


これを

<$mt:EntryBody mteval="1"$>

<$mt:EntryMore mteval="1"$>


に修正します。
これでエントリー内でのMTタグが有効になります。
但しエントリーのフォーマットが「なし」 でなければ有効にならず、「リッチテキスト」では無効となります。

アーカイブマッピング MT5

最近はムーバルタイプでスマートフォン用のサイトをボチボチ作り始めています。
そうするとテンプレートからアーカイブマッピングの設定をしないといけません。アーカイブマッピングとは超簡単に言うと、こういうURLを吐き出しなさいと命令するところです。

本家のサイトには、アーカイブマッピングで利用するアーカイブファイル名の定義 に記載されていますが、いろいろありすぎてチンプンカンプン(笑)

なので僕がよく使うアーカイブマッピングをメモっておこうと思います。
カテゴリ別ブログ記事リスト(%-c/%i)category/sub-category/index.html
ブログ記事(%-c/%-f)category/sub-category/entry-basename.html
entry_basename.htmlは%f
月別ブログ記事リスト(%y/%m/%i)yyyymm/index.html

あまり使わないけどメモ
公開日時中心
カテゴリ別ブログ記事リスト(archives/%-c/%i)archives/category/sub-category/index.html
ブログ記事(archives/%y%m/%d%h%n%x)archives/yyyymm/ddhhnn.html
月別ブログ記事リスト(archives/%y%m/%i)archives/yyyymm/index.html

出力ファイル名中心
カテゴリ別ブログ記事リスト(archives/%-c/%i)archives/category/sub-category/index.html
ブログ記事(archives/%-f)archives/entry-basename.html
月別ブログ記事リスト(archives/%y/%m/%i)archives/yyyy/mm/index.html

クラシックのデフォルト
カテゴリ別ブログ記事リスト(%-c/%i)category/sub-category/index.html
ブログ記事(%y/%m/%-f)yyyy/mm/entry-basename.html
月別ブログ記事リスト(%y/%m/%i)yyyy/mm/index.html

2012/10/17追加

問題点
ブログ記事の出力ファイル名に「_」(アンダースコア)を使用すると、実際に出力されるファイルでは「-」ハイフン)に変換されてしまう場合。

解決法
アンダースコアとして出力させる場合には、アーカイブマッピングのファイル名の出力箇所を「%f」に変更します。

MT3.32からMT5.12にバージョンアップ

データベースがSQLITEのMT3.32からMYSQLに統一されたMT5.12にバージョンアップしました。
特に困っていたわけじゃないのですが、あまりにも時間がたってからバージョンアップすると大変だろうと思ったからです。

一気にMT3からMT5はできないわけじゃないそうですが、順番にやっていったほうが良いそうです。

大きな流れ



  1. バックアップを取る

  2. MT4を(今回は4.25)ダウンロードしアップロードしたらパーミッションを変更

  3. mt-config.cgiを書き換えてアップロードしMT4にバージョンアップをする。

  4. そしたらブログのバックアップを取ります。

  5. SQLITEのデータをバックアップもとっておきます。データベースの移転を失敗しても元に戻せます。

  6. サーバーでMYSQLのデータベースを作成する。

  7. mt-config.cgiを開きSQLITEからMYSQLのデータベースに変更したらサーバーにアップロード

  8. そして、管理画面にアクセスしたら初期化せされればOK。適当にブログ名などを書いてOKボタンを押すと、新しいブログができます。

  9. システムメニューから復元を選び、4のブログのバックアップで復元します。この時MTが同じバージョンでないとバックアップファイルは復元できないので注意。要するにMT4.25からMT4.27もダメだし、もちろん4.25のバックアップをMT5で復元はできません。

  10. MT5をサーバーへアップロードしてフォルダ名が変わるときはMT4で使っていたmt-config.cgiのCGIパスなどを変更して(データベース名は変更しなくて良い)、MT5のmt-config.cgiがあるところにアップロードすれば、バージョンアップ完了です。



バージョンアップに失敗しても、元に戻せるようにバックアップは必ずとってください。
私も以前原因はわかりませんがバージョンアップに失敗した経験があります。

今回、MT3→MT4→MT5というふうにバージョンアップしたのですが、MT4のダウンロード出来る場所を30分くらい探したが見つからず、結局所有するブログに4.25を使っているのがあったのでそれをダウンロードしました。

私が今回やったサーバーはエックスサーバーです。多分ここはいくつもデータベースを作成できる?けど、レンタルサーバーによっては1つしかできないところもあります。

<$MTEntryBody trim_to="N" でタグを無視する方法

MT4(ムーバブルタイプ)のブログで、トップページやカテゴリページにエントリーの一部を表示させています。しかし、私は、<p>や<strong>のHTMLのタグを使って記事を書くため、例えば50文字表示させるようにしていると、ちょうどタグの途中で切れてしまうことがあります。そうなると、サイドバーが落ちたり、すべての文字が太文字になったりCSSが崩れる原因に。

そこで、調べたら
<$MTEntryBody trim_to="50" remove_html="1"$>

remove_html="1" を使用すればタグを無視することが出来ます。

このタグの意味は
「HTMLタグを無視してエントリーを50文字表示しろ」
という意味です。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。