Movable Type 備忘録

 

 MT3.3標準タグ機能とtagwireプラグインを併用する

ご無沙汰しております。

今年も残すところ2ヶ月を切りましたね。
年末も近いこともあって、メチャ忙しい毎日を送っています。

それはさておき、今回はMovableType 3.3から標準となったタグ機能と、+αの機能を持つtagwireプラグインを併用する方法についてご紹介します。

わたしのブログでは、テンプレートを公開してまして、テンプレート用のサンプルブログも公開しています。
MovableType備忘録では、tagwireプラグインによるタグ機能を使っているのですが、サンプルブログではMovableType 3.3標準のタグ機能を使う必要があったため、tagwireプラグインを共存させてます。

1つのMovableType内で2つのタグ機能を併用することなんて稀だと思いますが、覚え書きしておきます。

tagwireプラグインのインストールについては、こちらのTag Cloudのページを作ってみるを参考にしてください。

tagwireプラグインのカスタマイズ

MovableType 3.3標準のタグ機能とtagwireプラグインを併用するには、tagwireプラグインのタグ名称を変更する必要があります。
なぜ、変更する必要があるかというと、標準タグ機能で使用するタグ名とtagwireプラグインのタグ名がブッキングしてしまうからです。

標準タグ機能はみなさんご存知のように、エントリ投稿時に画面下にある「タグ」というフィールドに、そのエントリに関連深いキーワードを入力することで付加することができますね。

tagwireプラグインの方は、以前から同様の機能を提供してくれるプラグインだったわけですが、エントリ投稿画面下にある「キーワード」というフィールドにキーワードを入力することで、タグを付加することができます。

どちらも同様の機能ですが、参照するフィールドが異なります。
参照するフィールドが異なることを利用して、別な用途でそれぞれを使ってもいいかもしれませんね。

では、さっそく併用するためのtagwireプラグインのカスタマイズを紹介します。
tagwire.plをテキストエディタで開いて以下のように変更します。

49行目
MT::Template::Context->add_container_tag(TagwireTags => \&tags);
MT::Template::Context->add_container_tag(TagwireEntryTags => \&entry_tags);
MT::Template::Context->add_container_tag(TagwireRelatedTags => \&related_tags);
MT::Template::Context->add_tag(TagwireTag => \&tag);
MT::Template::Context->add_tag(TagwireTagCount => \&tag_count);
MT::Template::Context->add_tag(TagwireTagDate => \&tag_date);
MT::Template::Context->add_tag(TagwireTagsTotal => \&tags_total);
MT::Template::Context->add_tag(TagwireTagsTotalSum => \&tags_total_sum);
MT::Template::Context->add_container_tag(TagwireEntriesWithTags => \&entries);
MT::Template::Context->add_container_tag(TagwireMostRelatedEntries => \&most_related_entries);
MT::Template::Context->add_global_filter(encode_urlplus => \&encode_urlplus);
# For compatibility (this plugin was formerly named 'AllKeywords')
MT::Template::Context->add_container_tag(TagwireAllKeywords => \&tags);
MT::Template::Context->add_container_tag(TagwireEntryAllKeywords => \&entry_tags);
MT::Template::Context->add_tag(TagwireAllKeyword => \&tag);
MT::Template::Context->add_tag(TagwireAllKeywordCount => \&tag_count);
MT::Template::Context->add_tag(TagwireAllKeywordsTotal => \&tags_total);
MT::Template::Context->add_tag(TagwireAllKeywordsTotalSum => \&tags_total_sum);
MT::Template::Context->add_container_tag(TagwireEntriesWithKeywords => \&entries);

青い字のように"tagwire"を付加することで、MovableType 3.3標準タグ機能と併用することができるようになります。
付加する文字列は、他とブッキングしないような名前であれば任意で構いません。

上記変更では、ブッキングしていないタグも変更していますが、必ず上記のように変更してください。
ブッキングしていないからといって、いざ変更していないタグを使った場合、期待通りの動作をしなくなりますのでご注意ください。

変更したら保存してサーバにアップロードします。
tagwireプラグインを使うときは、タグ名を変更したのでそれぞれ以下のようになります。

<MTTags>               => <MTTagwireTags>
<MTEntryTags>          => <MTTagwireEntryTags>
<MTRelatedTags>        => <MTTagwireRelatedTags>
<MTTag>                => <MTTagwireTag>
<MTTagCount>           => <MTTagwireTagCount>
<MTTagDate>            => <MTTagwireTagDate>
<MTTagsTotal>          => <MTTagwireTagsTotal>
<MTTagsTotalSum>       => <MTTagwireTagsTotalSum>
<MTEntriesWithTags>    => <MTTagwireEntriesWithTags>
<MTMostRelatedEntries> => <MTTagwireMostRelatedEntries>
<MTAllKeywords>         => <MTTagwireAllKeywords>
<MTEntryAllKeywords>    => <MTTagwireEntryAllKeywords>
<MTAllKeyword>          => <MTTagwireAllKeyword>
<MTAllKeywordCount>     => <MTTagwireAllKeywordCount>
<MTAllKeywordsTotal>    => <MTTagwireAllKeywordsTotal>
<MTAllKeywordsTotalSum> => <MTTagwireAllKeywordsTotalSum>
<MTEntriesWithKeywords> => <MTTagwireEntriesWithKeywords>

以上で、MovableType(ムーバブルタイプ) 3.3標準タグ機能とtagwireプラグインを併用することができました。

参考:オラオラ::キーワードとタグ(1)

 Trackback Pings(0)

No trackbacks found.

 Comments(4)

#1: Posted by oscar [RES]

こんにちは、bzbellさん。
たぶん、AllKeywordがらみは変更しなくていいと思いますよ。
これは、TagwireプラグインがAllKeywordsプラグインだった時に作ったテンプレートへの、互換性の為にあるタグだったはずです。
だから、いじらないのが正解だと思いますよ

#2: Posted by bzbell [RES]

>>1 oscar さん

こんにちわ^^

はい。そうみたいですね♪
実際わたしも使ってません。

今回oscarさんの方にもコメントしたように、予想外のトラブルでハマってしまったので、この際だから全部やってしまえ!! 的な勢いで変更してみました(; ̄∇ ̄A

でも、oscarさんがいうように使わない(使う用がない)のだったら無駄に変更せずデフォのままの方がいいかも、ですね。

いつもご指導ありがとうございます♪

#3: Posted by ゆう [RES]

bzbellさん、はじめまして。
いつもコソッと覗かせてもらっていたのですが、この記事見て思い当たる節があったので思わず書き込みしてしまいました。(笑)


これって、もしかしてTagwireを変更しないままインストールしているといくら標準のTagcloudを使おうとしても表示されないということですか?
だとすると、まさしくうちのサイトです・・・。(^^;)
しかも、たった今併用することはないだろうと思いTagwireに移行するべくタグに記載してあったキーワードはすべて消し去った後だったりもします。
もう、笑うしかないですよね〜。(笑)
また、時間のあるときにでも挑戦してみます。

あと、リンクいただいていっても良いですか?

#4: Posted by bzbell [RES]

>>3 ゆう さん

はじめまして^^

> これって、もしかしてTagwireを変更しないままインストールしているといくら標準のTagcloudを使おうとしても表示されないということですか?

そのようです。
標準タグとtagwireプラグインのタグ名称が同一なので、プラグインの方が適用される!? ようです。

わたしは両方の機能を使いたかったので、tagwireプラグインのタグ名称を変更しました ( ̄∇ ̄)b

 Post a Comment

コメント用フィード