「WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。
「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいく本です。
この本では、PHPの基本となる変数と制御構造について解説します。
Kindle本で、定価500円です。
主/副カテゴリーを区別して出力する
Movable Typeでは、1つのエントリーを複数のカテゴリーに割り当てることができます。
また、そのうち1つを主カテゴリーにし、残りは副カテゴリーにすることもできます(主カテゴリーをなしにして、全部を副カテゴリーにすることもできます)。
しかし、Movable Typeの標準のテンプレートタグでは、主カテゴリーと副カテゴリーを区別して出力するものがありません。
MTEntryCategoryタグを使うと、主カテゴリーの名前(ラベル)を出力することができますが、その他の情報は出力できません。
また、MTEntryCategoriesタグを使うと、エントリーの全カテゴリーが文字コード順に出力され、主/副を区別することができません。
そこで、主カテゴリーと副カテゴリーを区別して出力するようなプラグインを作ってみました。
インストール
以下のページに接続して、表示されたソースコードをすべてコピーし、メモ帳等に貼り付けます。
そして、ソースコードに「EntryCategoriesModified.pl」というファイル名をつけて保存し、Movable Typeの「plugins」フォルダにアップロードします。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。
Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。
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>