2009
03/18
MTでサイトを作っていて、AtomのFeedがエラーで出力されてない事に気づく。
テンプレは標準のままなのに原因がわからない。
4.2辺りからかどうかは定かではないが、今まであったRSSのFeedも無くなっている。
多分RSSならちゃんと出る気がしたが、わざわざ古いバージョンからRSSのテンプレを引っ張ってきて作るのもなんだし、Atomが無いと今後困るのかも知れない
テンプレから無くなったってことはRSSよりAtom1本でOKとの判断だろうし・・・
というわけで原因追及
で、下記記述を発見
昨年春頃、ブログをRSSで読まれている方から、「atom.xmlが読めません」と、ご指摘があった。特にその時は何をしたというわけでもないので、どうやらMT3.3から、MT4.1にアップグレードしてから、読めなくなったようだ。
?中略?
atom.xmlが読めなかったのは、カテゴリー名の前に入れた<001>等のタグが原因だった。MT3.3までは問題が起きていなかっただけに、原因がわからなかったのだ。
Movable Type 4.2:カテゴリー名にタグを入れると、Atomで出力エラーがおきる
ナルホド。そういや、IEでそんなエラー表示を見た気が<気付けよ!
コチラのサイトではカテゴリの並び替え用<数字>を排除することで対処されたようだが、それではカテゴリが意図した順番に表示されない。
プラグインを使えば対応出来るが、それはそれでダイナミックに対応出来なくて困る
なにか方法がないかと探っていたところこんな方法を発見
基本的な並び替え方はMT3の時にやっていた「カテゴリーの頭に数字をつける」方法です。
頭に数字をつけておけば数字順にカテゴリーが並び替えられて表示されるのでそれを利用します。
ただ、そのままではカテゴリー名に数字が付いたまま表示されてしまうため、どうにかしてその頭の数字を消す必要があります。
MT3の時にはFirstCutCharやpmHeadChangerなどのプラグインを使って数字を消していましたが、MT4ではregex_replaceモディファイアを使います。
regex_replaceを使うと正規表現による置換ができるので、とても便利です。
MT4でプラグインを使わないカテゴリーの並べ替え方
コレダ!
これならダイナミック環境でも大丈夫そう。
というわけで試す。
今まで「<001>カテゴリ1」としていたものを「001.カテゴリ1」と変更
これまで「<remove_html="1">」で表示される「<001>」を排除していたが、以下の記述に変更。
<$MTCategoryLabel regex_replace="/^\d{1,}\./",""$>
置換して書き換えたので意外に手間も掛からず完了

トラックバックurl
| ホームへ |