【MTカスタマイズ】MTCategoryIfAllowPingsを利用してみる

特定のカテゴリの場合に条件分岐をしたい

以前に書いた記事でMTOSのカスタマイズとして、「MTEntryFlag」を利用した条件分岐を紹介しました。 引き続きトラックバック系の備忘録となりますが、今回はカテゴリで利用する場合です。

【MTOSカスタマイズ】MTEntryFlagを利用して条件分岐をする

今回はMTOSに限りませんが、カテゴリの設定でデフォルトでついている「トラックバックを許可」のチェックボックスを利用した条件分岐を考えてみたいと思います。 実はこのあたりもMTタグが用意されているんですよね。 といっても正しい使い方ではありませんが、普段使わなそうな項目を利用してみようというカスタマイズです。

今回の記事の目的

  • 「MTCategoryIfAllowPings」を使って表示を制御する

カテゴリの設定画面に「トラックバック受信」「トラックバック送信」などの設定項目がデフォルトで用意されています。 個人的にはあまりこの設定を利用することがなかったため、何かに利用できないかと考えていました。

トラックバックを許可

そこでMTOSでカスタムフィールドが追加できない場合に、この機能を使って「条件分岐」として利用できないか試してみました。 今回は「トラックバックを許可」のチェックボックスを使った条件分岐に挑戦です。 ※MTOS5.2.13 を使っています。

「MTCategoryIfAllowPings」を使ってみよう

カテゴリ設定の画面に表示される「トラックバックを許可」は、「MTCategoryIfAllowPings」というMTタグとして機能します。 公式サイトでタグを調べてみると・・・。

カテゴリへのトラックバックを受け付ける設定のときに実行する条件タグです。

引用元:MTCategoryIfAllowPings | テンプレートタグリファレンス

<MTCategoryIfAllowPings>
<!-- チェックが入っている時に動作する -->
</MTCategoryIfAllowPings>

上記のようにカテゴリ別に「トラックバックを受け付けるかどうか」の設定をおこなう条件タグです。 こちらを利用して、任意のカテゴリにだけ「特別な指示をしたい」という使い方をしてみます。

●チェックのあるカテゴリに「class=”check”」をつけてみる

<MTTopLevelCategories>
<ul>
<li<MTCategoryIfAllowPings> class="check"</MTCategoryIfAllowPings>><a href="<$MTCategoryArchiveLink$>"><MTCategoryLabel></a></li>
</ul>
</MTTopLevelCategories>

「MTTopLevelCategories」の中で利用して、このチェックがあったら場合に特別な表現をしてみるというものです。 特定のカテゴリだけ違う「CSS」をあてるとか、非表示にする、などの使い方を想定してみました。

ざっくりとした記述ですが、このように「チェックがあった時だけ」という条件で判断することができました。 カテゴリリストを表示させる際にチェックがあったカテゴリのみ「li class=”check”」というクラスが付くという感じです。

カテゴリーアーカイブでも利用可能

<MTTopLevelCategories>
チェックをしたカテゴリページにいる場合に表示
</MTTopLevelCategories>

カテゴリーアーカイブで利用する場合は、単純に「チェックをしたカテゴリページにいる場合に表示」させることが可能です。 この使い方が一番分かりやすいかもしれませんね!

もちろん「MTIfCategory」などでカテゴリを指定することで対応できます。 しかし、先日の記事のようにMTOSを利用している場合にデフォルトのチェックボックスでカスタムフィールド代わりに使えるかもしれません。

チェックがある時だけの判断になってしまう

「MTCategoryIfAllowPings」は本来、トラックバックを受け付ける場合にトラックバックURLなどを表示させるMTタグなため、「チェックがない場合」という処理がないようです。 そのため、このチェックボックスを利用する場合は「True」の判断のみになりますのでお気をつけください!

まとめ

いかがでしたか? 前回のMTOSの記事よりも使う機会が少ないかもしれませんが、カテゴリをフックにしたカスタマイズが必要になった場合「MTCategoryIfAllowPings」を思い出してみてください。 実はわたしがこのチェックボックスを活用したのは、複雑なカテゴライズをしているときにどうしても特別な条件が必要だったからなんです。

「同じ親カテゴリ、子カテゴリも一緒、でも違いが出したい」そんな動きを想定した時にたまたまMTOSを使っていました。 カスタムフィールドがある場合は、カテゴリにチェックボックスやラジオボタンを追加して分岐できるのですが、MTOSではそうはいきません。 そこで、わらにもすがる思いでこのチェックボックスを利用したというわけです。

とはいえ、MTOSのサポートが終了した今では誰の特にもならないカスタマイズかもしれませんね・・・。 もし同じ境遇の方がいたら、ぜひ試してみてくださいね!