お知らせ
2008年3月28日
「これだけは知っておきたい Webアプリケーションの常識」が発売されました。
Webアプリケーションを作る上では、HTTPのプロトコルや、開発言語、データベースなど、さまざまな知識を組み合わせることが必要になります。
それらを全般的にまとめた一冊です。
Webアプリケーション開発にチャレンジしたい方や、実際に開発までしないまでも基礎知識として知っておきたい方にお勧めです。
他にも多数書籍を執筆しています。
こちらもぜひご覧ください。
主/副カテゴリーを区別して出力する
Movable Typeでは、1つのエントリーを複数のカテゴリーに割り当てることができます。
また、そのうち1つを主カテゴリーにし、残りは副カテゴリーにすることもできます(主カテゴリーをなしにして、全部を副カテゴリーにすることもできます)。
しかし、Movable Typeの標準のテンプレートタグでは、主カテゴリーと副カテゴリーを区別して出力するものがありません。
MTEntryCategoryタグを使うと、主カテゴリーの名前(ラベル)を出力することができますが、その他の情報は出力できません。
また、MTEntryCategoriesタグを使うと、エントリーの全カテゴリーが文字コード順に出力され、主/副を区別することができません。
そこで、主カテゴリーと副カテゴリーを区別して出力するようなプラグインを作ってみました。
インストール
以下のページに接続して、表示されたソースコードをすべてコピーし、メモ帳等に貼り付けます。
そして、ソースコードに「EntryCategoriesModified.pl」というファイル名をつけて保存し、Movable Typeの「plugins」フォルダにアップロードします。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
MTEntryCategoriesModifiedタグ
MTEntryCategoriesModifiedタグはMTEntryCategoriesタグを改良したものです。
コンテナタグになっていて、コンテナの中ではMTCategoryXXXタグを使うことができます。
「mode="xxx"」のアトリビュートを指定することで、以下の表のように、エントリーに割り当てたカテゴリーを出力することができます。
| アトリビュート | 動作 |
|---|---|
| mode="primary" | 主カテゴリーだけを出力します |
| mode="secondary" | 副カテゴリーだけを出力します |
| mode="all" | まず主カテゴリーを出力し、その後に副カテゴリーを出力します |
また、MTEntryCategoriesタグと同じく、「glue="○"」のアトリビュートで、カテゴリー間を区切る文字を指定することもできます。
MTEntryCategoryCountタグ
エントリーに割り当てたカテゴリーの数(主/副の合計)を出力する変数タグです。
また、「secondary="1"」のアトリビュートをつけると、副カテゴリーの数だけを出力することもできます。
MTEntryIfPrimaryCategoryタグ
エントリーに主カテゴリーがあるかどうかを判断する条件タグです。
MTEntryIfSecondaryCategoryタグ
エントリーに副カテゴリーがあるかどうかを判断する条件タグです。
使用例
以下のリストは、エントリーのカテゴリーを主カテゴリーと副カテゴリーに分けて出力する例です。
カテゴリーの名前を出力し、その部分をカテゴリーアーカイブページへのリンクにします。
また、副カテゴリーが複数ある場合は、それらの間をコンマで区切ります。
<p> <MTEntryIfPrimaryCategory>主カテゴリー:<MTEntryCategoriesModified mode="primary"><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></MTEntryCategoriesModified><br /></MTEntryIfPrimaryCategory> <MTEntryIfSecondaryCategory>副カテゴリー(<$MTEntryCategoryCount secondary="1"$>):<MTEntryCategoriesModified mode="secondary" glue=" , "><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></MTEntryCategoriesModified></MTEntryIfSecondaryCategory> </p>
前後の記事
トラックバック(8件)
このブログ記事を参照しているブログ一覧: 主/副カテゴリーを区別して出力する
このブログ記事に対するトラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/313.
MTEntryCategoriesModifiedプラグイン。 リンク先にて... 続きを読む
前のエントリーから1ヵ月以上経っていますが、またまた中身は超進化していますので。... 続きを読む
カテゴリ・アーカイブ内ではあまりひねらずとも、次のように記述すれば、そのカテゴリ... 続きを読む
MovableTypeは1つの記事に対し、複数のカテゴリーが設定できます。 自分... 続きを読む
複数のカテゴリーに属しているエントリーページに、主カテゴリーの説明文(とリンク)... 続きを読む
以前、カテゴリーアーカイブのディレクトリ名をうまく設定できないと書いたが、これ... 続きを読む
エントリー数も少しづつ増えてきたので、パンくずリストを設置しました。 ひとつの... 続きを読む
遅ればせながらMT3.3をインストールしてみました。 結構前にリリースされたのは... 続きを読む


コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
はじめまして
求めていた機能が見つかったと思い、さっそくチャレンジしたのですが、再構築時に以下のようなエラーが出てしまいます。
Can't call method "category" on an undefined value
at(パス)/mt/plugins/EntryCategoriesModified.pl line 91.
再構築しようとしているタグはこちらの使用例をそのままでテストしました。
使用しているMovable Typeは3.2-ja-2です。
原因には何が考えられるか、アドバイスいただけないでしょうか?
よろしくお願いいたします。
>忍月さん
こんにちは。
このプラグインのテンプレートタグは、<MTEntries>~</MTEntries>の間か、エントリーアーカイブテンプレートの中でないと、使うことができません。
それ以外の位置に入れると、コメントいただいたようなエラーメッセージが表示されます。
テンプレートの中で、タグを入れた位置をご確認ください。