- ベストアンサー
日付アーカイブをコンパクトに!
- 3年間書いてきた日記の日付アーカイブをMovable Typeに移行し、表示をコンパクトにしたい。2004年を2004と表示したいが上手くいかないので質問。
- 現在の日付アーカイブは長くて見づらい。参考にしたサイトを見てコンパクトにまとめる方法を試したが、うまくいかない。
- ソースに年や月を追加してみたり、リンクのURLを変更してみたりしたが、問題が解決しない。質問があります。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
取り急ぎ 1個目、プラグインの記述の仕方が 3.0x or 3.1x ? から変わったのでそれに沿った記述をしていないと管理画面内に表示されないのです。表示されないイコール使えないというのは早計でアクティブログにエラーが表示されていないのならだいたい動くと思います。いずれにしてこのプラグイン自体が古いので表示されないのでしょう。 2個目、ダイナミックパブリッシングが原因ですね。 ぬりかべブログ?::?年別のアーカイブインデックス作成 http://nurikabe.net/blog/archives/2005/06/01/2254.php >2005、9などのように数字のみで年と月が表示されませんでした。 これはメインインデックスページでのサイドメニューでの表示の問題でしょうか?
その他の回答 (7)
- SpiceGirl
- ベストアンサー率69% (493/713)
私の環境うんぬんですが、私はお気楽ブロガーちゃんですので参考にならないと思います。 データベースは何をお使いなのでしょうか?BerkeleyDB だとこのエラーが頻繁にでるようになるのですが。。。
- SpiceGirl
- ベストアンサー率69% (493/713)
暫定回答 その3 年ごとのアーカイブを作るため ArchiveYear と ArchiveLoad の二つのプラグイン をインストール。利用可能なプラグインの設定にはいずれも表示されない。 ぬりかべブログ?::?年別のアーカイブインデックス作成 http://nurikabe.net/blog/archives/2005/06/01/2254.php を参考にして MT 管理画面の「テンプレート」 -> 「新しいアーカイブ・テンプレートを作る」 テンプレートの名前 : 年別アーカイブ 適当に作って保存 *日別アーカイブ内容をコピーして Entrybody 等の箇所を削除し Chitatopops: 年ごとのアーカイブ http://chitatopops.net/archives/2003/08/25/archives_by_year.php にあるコードを貼り付け保存。 次に「ウェブログの設定」 -> 「アーカイブの設定」で「新しく、テンプレートとアーカイブを関連付ける。」 アーカイブの種類: 月別 、テンプレート: 年別アーカイブを選択し、「追加」 アーカイブ・ファイルのテンプレート: <$MTArchiveDate format="%Y/index.php"$>(優先するテンプレートは月別アーカイブで使っているもののまま) 「変更を保存」 再構築すると /archives/2005/index.php として出力されるのでメインインデックスページのサイドメニューから 2005年をクリックすると2005年のエントリーが一覧表示されます。 訂正: 月別アーカイブ の設定は <$MTArchiveDate format="%Y/%m"$>/index.php 年別アーカイブ の設定は <$MTArchiveDate format="%Y"$>/index.php <$MTArchiveDate format="%Y/index.php"$> と<$MTArchiveDate format="%Y"$>/index.php は同じです。
- SpiceGirl
- ベストアンサー率69% (493/713)
暫定回答 その2 *条件 MT バージョン 3.171、 ダイナミックパブリッシングは使っていない。2005年、7月と9月のみ投稿ありのとき。 プラグインの Archive Date Header と Compare をインストールする。 利用可能なプラグインの設定には「Compare」のみ表示される。 これで再構築すると、先の表示からこのように変わる。 アーカイブ 2005 年 9 月 7 月 月別アーカイブ の設定は <$MTArchiveDate format="%Y/%m"$>/ となっているので 9 月 、7 月 それぞれクリック /archives/2005/07/ /archives/2005/09/ で表示されます。 年ごとのアーカイブをこの時点では作っていないのでリンク先が /archives/2005/ となっているも当然ページが無いのでエラーとなる。
- SpiceGirl
- ベストアンサー率69% (493/713)
暫定回答 その1 MT 3.171 でプラグインを何も入れていない状態で下記コードを追加したとき (直接、年と月を書いて追加) <h2>アーカイブ</h2> <MTSetVar name="lastyear" value="1"><ul> <MTArchiveList archive_type="Monthly"><MTIfEqual a="[MTGetVar name='lastyear']" b="1"><MTArchiveDateHeader> <li><a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y"$>/"><$MTArchiveDate format="%Y 年"$></a> <ul> </MTArchiveDateHeader> <li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B 月"$></a></li><MTIfNotEqual a="[MTArchivePrevious][MTArchiveDate format='%Y'][/MTArchivePrevious]" b="[MTArchiveDate format='%Y']"> </ul> </li><MTSetVar name="lastyear" value="2"></MTIfNotEqual> </MTIfEqual></MTArchiveList><MTIfEqual a="[MTGetVar name='lastyear']" b="2"><MTArchiveList archive_type="Monthly"><MTArchiveDateHeader><li><a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y"$>/"><$MTArchiveDate format="%Y 年"$></a></li> </MTArchiveDateHeader></MTArchiveList></MTIfEqual></ul> メインインデックスページのサイドメニューでの表示のされかたは アーカイブ 2005 年 9 月 2005 年 7 月 2005 年 2005 年 少なくとも表記の問題はこれで解決。
補足
SpiceGirlさん、お返事遅くなって申し訳ありません。 教えていただき原因はダイナミックパブリッシングにあることは分かりました。 ダイナミックパブリッシングでページを変更しても反映されなかったためこのようなことが起きたようです。 しかしスタティックで再構築するとカテゴリーと月別で必ず▼500エラーが発生します。 500 Internal Server Error (CGIスクリプトのエラーかメモリ使用量が許容量を超えています。このページの管理者にお問い合わせください。) まずはここから問題を解決しなければなりませんでした。 1カテゴリーに400ほどあったのを100ずつサブカテゴリーに分割しても500エラーが発生します。 結局インストール時の状態まで戻したりしたのですが、500エラーをどうしても避けることができず、検索して調べた結果▼次をインストールすることになりました。 「rebuild支援ツール」のインストール方法 http://www.na.rim.or.jp/~tsupo/program/rebuild-tool/ これでも400あったカテゴリで動作しなかったので細分化し、少しづつ再構築することで、何とか希望とおりに実現することができました。 そこでひとつお聞きしたいのですが、これはどのサーバーでも起こりうることなのでしょうか? SpiceGirlさんのサーバー環境ではいかがでしょうか? 私は4年前から借りている3780円/月のサーバーを使っています。 しかしブログを使っているところをみるとエラーメッセージから低額で有名なロリポップを使っているところが多いのがわかります。 私以上のエントリー数でもロリポップで難なく動作しているのをみると何だかやりきれないです。 エントリー数は過去のものだけで2000以上、1年で約1000件ほどは今後増えていきます。 最初の質問とは無関係で大変申し訳ないのですが、サーバーに知識がないものですから、SpiceGirlさんのサーバー環境(差し支えなければ)と何かアドバイスを教えていただければありがたいです。 よろしくお願いします。
- SpiceGirl
- ベストアンサー率69% (493/713)
<$MTArchiveDate format="%Y" language="jp"$> language="jp" を付ければ言語設定に左右されません。
補足
SpiceGirlさん。いつも丁寧に教えていただきありがとうございます。 教えていただいたとおりに3回やり直してみたもののうまくいきません。 状況を書いてみます。 > 年ごとのアーカイブを作る設定をしていないからではないでしょうか? > Chitatopops: 年ごとのアーカイブ > http://chitatopops.net/archives/2003/08/25/archives_by_year.php はい、設定していませんでした。 早速、プラグインをアップロードしてURLの案内に従って設定しました。 ここでひとつ質問があります。プラグインをアップロードしたもののメインメニューの「利用可能なプラグインの設定」には両方とも表示されないのです。 これはうまくプラグインがアップロードされていないということでしょうか? またあまり関係ないと思いますが、教えていただいたプラグインのページでアップロードしても表示されなかったため、▼こちらのページの最後に同じプラグインがありましたので同様にコピーしてアップロードしました。しかしこちらでも表示されませんでした。 http://www.mushline.com/junky/2004/07.shtml サイトを見てみると、同じ年なのにリンクされたURLが次のように異なっていました。 「年ごとのアーカイブ」で設定 2005 URL:www.MYSITE.com/archives/2005/ 「日付アーカイブのリストをコンパクトに」で設定 2005 URL:http://www.MYSITE.com/htdocs/mt/archives2005/ FFTPでサーバーのディレクトリを見るとどちらにもindex.phpのファイルは生成されていませんでした。 ここで2つめの質問があります。 これはウェブログの設定の基本設定かアーカイブの設定が間違っているのでしょうか? なおもしかしたら関係あるのかもしれませんが、カテゴリーには「Cut First Char 0.01」というプラグインを用いて<$MTCategoryLabel cutfirstchar="3"$>(最初の数字の3桁を削ったものをファイル名にする)としています。また日本語での表示のためにカテゴリ名は<$MTCategoryDescription$>としています。 > <$MTArchiveDate format="%Y" language="jp"$> > language="jp" を付ければ言語設定に左右されません。 上のようにすべてにlanguage="jp"をつけたのですが、2005、9などのように数字のみで年と月が表示されませんでした。 再構築の仕方が間違っているのでしょうか? テンプレートの再構築オプションで、アーカイブのみダイナミックを指定しています。 すべてスタティックにすると投稿が多いせいかすぐに505エラーが発生します。 いろいろ検索して調べてみるものの思うようにいかず困っています。 もしよい解決方法がお分かりになりましたら教えてください。よろしくお願いします。
- SpiceGirl
- ベストアンサー率69% (493/713)
>2004を2004年と表示したい 日付の言語設定が日本になっていないのでは?
- SpiceGirl
- ベストアンサー率69% (493/713)
年ごとのアーカイブを作る設定をしていないからではないでしょうか? Chitatopops: 年ごとのアーカイブ http://chitatopops.net/archives/2003/08/25/archives_by_year.php ただしオリジナルプラグイン配布サイトが閉鎖しているので Survival: Plug-in アーカイブ http://survival.zionic.org/archives/mt/plugin/index.html からソースをコピーして XXXXXX.pl の形で保存すれば使えると思われます。 ちなみに現在 Archive Date Header と Compare プラグインはインストール済みでしょうか?
お礼
SpiceGirlさん、お礼が遅くなって申し訳ありません。 休み明けで、早速サーバーの会社に連絡を取ってみたところ、メモリ制限に引っかかっているのでワンランク上のサービスに乗り換えるようとの回答でした。 サーバーの移転を真剣に考えてみることにします。 なおデータベースサーバーはMySQLを使用しています。 これまで丁寧に教えていただいて本当に感謝しております。 まだ使い始めたばかりで???の連続ですが、使いこなせるようにがんばります。 ありがとうございました。